{
 "metadata": {
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  },
  "orig_nbformat": 2,
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3.7.7 64-bit ('ml_py37': conda)"
  },
  "interpreter": {
   "hash": "f4a74c3b9a35f939ed5c5f84fbd6ec447d08833fdb03ddd37ef62ef54b5a044d"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2,
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import svm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "SVC()"
      ]
     },
     "metadata": {},
     "execution_count": 2
    }
   ],
   "source": [
    "X = [[0, 0], [1, 1]]\n",
    "y = [0, 1]\n",
    "clf = svm.SVC()\n",
    "clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([1])"
      ]
     },
     "metadata": {},
     "execution_count": 5
    }
   ],
   "source": [
    "clf.predict([[2,2]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([0, 1], dtype=int32)"
      ]
     },
     "metadata": {},
     "execution_count": 6
    }
   ],
   "source": [
    "clf.support_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[0., 0.],\n",
       "       [1., 1.]])"
      ]
     },
     "metadata": {},
     "execution_count": 7
    }
   ],
   "source": [
    "clf.support_vectors_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([1, 1], dtype=int32)"
      ]
     },
     "metadata": {},
     "execution_count": 8
    }
   ],
   "source": [
    "clf.n_support_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "SVR()"
      ]
     },
     "metadata": {},
     "execution_count": 9
    }
   ],
   "source": [
    ">>> from sklearn import svm\n",
    ">>> X = [[0, 0], [2, 2]]\n",
    ">>> y = [0.5, 2.5]\n",
    ">>> regr = svm.SVR()\n",
    ">>> regr.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([1.5])"
      ]
     },
     "metadata": {},
     "execution_count": 10
    }
   ],
   "source": [
    "regr.predict([[1, 1]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import SGDClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "SGDClassifier()"
      ]
     },
     "metadata": {},
     "execution_count": 14
    }
   ],
   "source": [
    ">>> X = [[0., 0.], [1., 1.]]\n",
    ">>> y = [0, 1]\n",
    ">>> clf = SGDClassifier(loss=\"hinge\", penalty=\"l2\")  # , max_iter=5\n",
    ">>> clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([1])"
      ]
     },
     "metadata": {},
     "execution_count": 15
    }
   ],
   "source": [
    "clf.predict([[2., 2.]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[9.85221675, 9.85221675]])"
      ]
     },
     "metadata": {},
     "execution_count": 16
    }
   ],
   "source": [
    "clf.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([29.41883706])"
      ]
     },
     "metadata": {},
     "execution_count": 17
    }
   ],
   "source": [
    "clf.decision_function([[2., 2.]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "output_type": "error",
     "ename": "AttributeError",
     "evalue": "probability estimates are not available for loss='hinge'",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-18-c9ec7d2bb54c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mclf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict_proba\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1.\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_stochastic_gradient.py\u001b[0m in \u001b[0;36mpredict_proba\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m   1025\u001b[0m         \u001b[0mhttp\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m//\u001b[0m\u001b[0mjmlr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcsail\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0medu\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mpapers\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mvolume2\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mzhang02c\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mzhang02c\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpdf\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1026\u001b[0m         \"\"\"\n\u001b[0;32m-> 1027\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_proba\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1028\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_predict_proba\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1029\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_stochastic_gradient.py\u001b[0m in \u001b[0;36m_check_proba\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    986\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloss\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\"log\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"modified_huber\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    987\u001b[0m             raise AttributeError(\"probability estimates are not available for\"\n\u001b[0;32m--> 988\u001b[0;31m                                  \" loss=%r\" % self.loss)\n\u001b[0m\u001b[1;32m    989\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    990\u001b[0m     \u001b[0;34m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mAttributeError\u001b[0m: probability estimates are not available for loss='hinge'"
     ]
    }
   ],
   "source": [
    "clf.predict_proba([[1., 1.]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"265.995469pt\" version=\"1.1\" viewBox=\"0 0 376.2625 265.995469\" width=\"376.2625pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n   <cc:Work>\n    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n    <dc:date>2021-06-08T10:45:38.514558</dc:date>\n    <dc:format>image/svg+xml</dc:format>\n    <dc:creator>\n     <cc:Agent>\n      <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\n     </cc:Agent>\n    </dc:creator>\n   </cc:Work>\n  </rdf:RDF>\n </metadata>\n <defs>\n  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 265.995469 \nL 376.2625 265.995469 \nL 376.2625 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 34.2625 228.439219 \nL 369.0625 228.439219 \nL 369.0625 10.999219 \nL 34.2625 10.999219 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"m92c33175f3\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"49.480682\" xlink:href=\"#m92c33175f3\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- −4 -->\n      <g transform=\"translate(42.109588 243.037656)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 10.59375 35.5 \nL 73.1875 35.5 \nL 73.1875 27.203125 \nL 10.59375 27.203125 \nz\n\" id=\"DejaVuSans-8722\"/>\n        <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-8722\"/>\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"87.526136\" xlink:href=\"#m92c33175f3\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- −3 -->\n      <g transform=\"translate(80.155043 243.037656)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 40.578125 39.3125 \nQ 47.65625 37.796875 51.625 33 \nQ 55.609375 28.21875 55.609375 21.1875 \nQ 55.609375 10.40625 48.1875 4.484375 \nQ 40.765625 -1.421875 27.09375 -1.421875 \nQ 22.515625 -1.421875 17.65625 -0.515625 \nQ 12.796875 0.390625 7.625 2.203125 \nL 7.625 11.71875 \nQ 11.71875 9.328125 16.59375 8.109375 \nQ 21.484375 6.890625 26.8125 6.890625 \nQ 36.078125 6.890625 40.9375 10.546875 \nQ 45.796875 14.203125 45.796875 21.1875 \nQ 45.796875 27.640625 41.28125 31.265625 \nQ 36.765625 34.90625 28.71875 34.90625 \nL 20.21875 34.90625 \nL 20.21875 43.015625 \nL 29.109375 43.015625 \nQ 36.375 43.015625 40.234375 45.921875 \nQ 44.09375 48.828125 44.09375 54.296875 \nQ 44.09375 59.90625 40.109375 62.90625 \nQ 36.140625 65.921875 28.71875 65.921875 \nQ 24.65625 65.921875 20.015625 65.03125 \nQ 15.375 64.15625 9.8125 62.3125 \nL 9.8125 71.09375 \nQ 15.4375 72.65625 20.34375 73.4375 \nQ 25.25 74.21875 29.59375 74.21875 \nQ 40.828125 74.21875 47.359375 69.109375 \nQ 53.90625 64.015625 53.90625 55.328125 \nQ 53.90625 49.265625 50.4375 45.09375 \nQ 46.96875 40.921875 40.578125 39.3125 \nz\n\" id=\"DejaVuSans-51\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-8722\"/>\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-51\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"125.571591\" xlink:href=\"#m92c33175f3\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- −2 -->\n      <g transform=\"translate(118.200497 243.037656)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-8722\"/>\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"163.617045\" xlink:href=\"#m92c33175f3\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- −1 -->\n      <g transform=\"translate(156.245952 243.037656)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-8722\"/>\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-49\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"201.6625\" xlink:href=\"#m92c33175f3\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 0 -->\n      <g transform=\"translate(198.48125 243.037656)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"239.707955\" xlink:href=\"#m92c33175f3\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 1 -->\n      <g transform=\"translate(236.526705 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_7\">\n     <g id=\"line2d_7\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"277.753409\" xlink:href=\"#m92c33175f3\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 2 -->\n      <g transform=\"translate(274.572159 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_8\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"315.798864\" xlink:href=\"#m92c33175f3\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 3 -->\n      <g transform=\"translate(312.617614 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-51\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_9\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"353.844318\" xlink:href=\"#m92c33175f3\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 4 -->\n      <g transform=\"translate(350.663068 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"text_10\">\n     <!-- Decision function $f(x)$ -->\n     <g transform=\"translate(148.1125 256.715781)scale(0.1 -0.1)\">\n      <defs>\n       <path d=\"M 19.671875 64.796875 \nL 19.671875 8.109375 \nL 31.59375 8.109375 \nQ 46.6875 8.109375 53.6875 14.9375 \nQ 60.6875 21.78125 60.6875 36.53125 \nQ 60.6875 51.171875 53.6875 57.984375 \nQ 46.6875 64.796875 31.59375 64.796875 \nz\nM 9.8125 72.90625 \nL 30.078125 72.90625 \nQ 51.265625 72.90625 61.171875 64.09375 \nQ 71.09375 55.28125 71.09375 36.53125 \nQ 71.09375 17.671875 61.125 8.828125 \nQ 51.171875 0 30.078125 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-68\"/>\n       <path d=\"M 56.203125 29.59375 \nL 56.203125 25.203125 \nL 14.890625 25.203125 \nQ 15.484375 15.921875 20.484375 11.0625 \nQ 25.484375 6.203125 34.421875 6.203125 \nQ 39.59375 6.203125 44.453125 7.46875 \nQ 49.3125 8.734375 54.109375 11.28125 \nL 54.109375 2.78125 \nQ 49.265625 0.734375 44.1875 -0.34375 \nQ 39.109375 -1.421875 33.890625 -1.421875 \nQ 20.796875 -1.421875 13.15625 6.1875 \nQ 5.515625 13.8125 5.515625 26.8125 \nQ 5.515625 40.234375 12.765625 48.109375 \nQ 20.015625 56 32.328125 56 \nQ 43.359375 56 49.78125 48.890625 \nQ 56.203125 41.796875 56.203125 29.59375 \nz\nM 47.21875 32.234375 \nQ 47.125 39.59375 43.09375 43.984375 \nQ 39.0625 48.390625 32.421875 48.390625 \nQ 24.90625 48.390625 20.390625 44.140625 \nQ 15.875 39.890625 15.1875 32.171875 \nz\n\" id=\"DejaVuSans-101\"/>\n       <path d=\"M 48.78125 52.59375 \nL 48.78125 44.1875 \nQ 44.96875 46.296875 41.140625 47.34375 \nQ 37.3125 48.390625 33.40625 48.390625 \nQ 24.65625 48.390625 19.8125 42.84375 \nQ 14.984375 37.3125 14.984375 27.296875 \nQ 14.984375 17.28125 19.8125 11.734375 \nQ 24.65625 6.203125 33.40625 6.203125 \nQ 37.3125 6.203125 41.140625 7.25 \nQ 44.96875 8.296875 48.78125 10.40625 \nL 48.78125 2.09375 \nQ 45.015625 0.34375 40.984375 -0.53125 \nQ 36.96875 -1.421875 32.421875 -1.421875 \nQ 20.0625 -1.421875 12.78125 6.34375 \nQ 5.515625 14.109375 5.515625 27.296875 \nQ 5.515625 40.671875 12.859375 48.328125 \nQ 20.21875 56 33.015625 56 \nQ 37.15625 56 41.109375 55.140625 \nQ 45.0625 54.296875 48.78125 52.59375 \nz\n\" id=\"DejaVuSans-99\"/>\n       <path d=\"M 9.421875 54.6875 \nL 18.40625 54.6875 \nL 18.40625 0 \nL 9.421875 0 \nz\nM 9.421875 75.984375 \nL 18.40625 75.984375 \nL 18.40625 64.59375 \nL 9.421875 64.59375 \nz\n\" id=\"DejaVuSans-105\"/>\n       <path d=\"M 44.28125 53.078125 \nL 44.28125 44.578125 \nQ 40.484375 46.53125 36.375 47.5 \nQ 32.28125 48.484375 27.875 48.484375 \nQ 21.1875 48.484375 17.84375 46.4375 \nQ 14.5 44.390625 14.5 40.28125 \nQ 14.5 37.15625 16.890625 35.375 \nQ 19.28125 33.59375 26.515625 31.984375 \nL 29.59375 31.296875 \nQ 39.15625 29.25 43.1875 25.515625 \nQ 47.21875 21.78125 47.21875 15.09375 \nQ 47.21875 7.46875 41.1875 3.015625 \nQ 35.15625 -1.421875 24.609375 -1.421875 \nQ 20.21875 -1.421875 15.453125 -0.5625 \nQ 10.6875 0.296875 5.421875 2 \nL 5.421875 11.28125 \nQ 10.40625 8.6875 15.234375 7.390625 \nQ 20.0625 6.109375 24.8125 6.109375 \nQ 31.15625 6.109375 34.5625 8.28125 \nQ 37.984375 10.453125 37.984375 14.40625 \nQ 37.984375 18.0625 35.515625 20.015625 \nQ 33.0625 21.96875 24.703125 23.78125 \nL 21.578125 24.515625 \nQ 13.234375 26.265625 9.515625 29.90625 \nQ 5.8125 33.546875 5.8125 39.890625 \nQ 5.8125 47.609375 11.28125 51.796875 \nQ 16.75 56 26.8125 56 \nQ 31.78125 56 36.171875 55.265625 \nQ 40.578125 54.546875 44.28125 53.078125 \nz\n\" id=\"DejaVuSans-115\"/>\n       <path d=\"M 30.609375 48.390625 \nQ 23.390625 48.390625 19.1875 42.75 \nQ 14.984375 37.109375 14.984375 27.296875 \nQ 14.984375 17.484375 19.15625 11.84375 \nQ 23.34375 6.203125 30.609375 6.203125 \nQ 37.796875 6.203125 41.984375 11.859375 \nQ 46.1875 17.53125 46.1875 27.296875 \nQ 46.1875 37.015625 41.984375 42.703125 \nQ 37.796875 48.390625 30.609375 48.390625 \nz\nM 30.609375 56 \nQ 42.328125 56 49.015625 48.375 \nQ 55.71875 40.765625 55.71875 27.296875 \nQ 55.71875 13.875 49.015625 6.21875 \nQ 42.328125 -1.421875 30.609375 -1.421875 \nQ 18.84375 -1.421875 12.171875 6.21875 \nQ 5.515625 13.875 5.515625 27.296875 \nQ 5.515625 40.765625 12.171875 48.375 \nQ 18.84375 56 30.609375 56 \nz\n\" id=\"DejaVuSans-111\"/>\n       <path d=\"M 54.890625 33.015625 \nL 54.890625 0 \nL 45.90625 0 \nL 45.90625 32.71875 \nQ 45.90625 40.484375 42.875 44.328125 \nQ 39.84375 48.1875 33.796875 48.1875 \nQ 26.515625 48.1875 22.3125 43.546875 \nQ 18.109375 38.921875 18.109375 30.90625 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.1875 \nQ 21.34375 51.125 25.703125 53.5625 \nQ 30.078125 56 35.796875 56 \nQ 45.21875 56 50.046875 50.171875 \nQ 54.890625 44.34375 54.890625 33.015625 \nz\n\" id=\"DejaVuSans-110\"/>\n       <path id=\"DejaVuSans-32\"/>\n       <path d=\"M 37.109375 75.984375 \nL 37.109375 68.5 \nL 28.515625 68.5 \nQ 23.6875 68.5 21.796875 66.546875 \nQ 19.921875 64.59375 19.921875 59.515625 \nL 19.921875 54.6875 \nL 34.71875 54.6875 \nL 34.71875 47.703125 \nL 19.921875 47.703125 \nL 19.921875 0 \nL 10.890625 0 \nL 10.890625 47.703125 \nL 2.296875 47.703125 \nL 2.296875 54.6875 \nL 10.890625 54.6875 \nL 10.890625 58.5 \nQ 10.890625 67.625 15.140625 71.796875 \nQ 19.390625 75.984375 28.609375 75.984375 \nz\n\" id=\"DejaVuSans-102\"/>\n       <path d=\"M 8.5 21.578125 \nL 8.5 54.6875 \nL 17.484375 54.6875 \nL 17.484375 21.921875 \nQ 17.484375 14.15625 20.5 10.265625 \nQ 23.53125 6.390625 29.59375 6.390625 \nQ 36.859375 6.390625 41.078125 11.03125 \nQ 45.3125 15.671875 45.3125 23.6875 \nL 45.3125 54.6875 \nL 54.296875 54.6875 \nL 54.296875 0 \nL 45.3125 0 \nL 45.3125 8.40625 \nQ 42.046875 3.421875 37.71875 1 \nQ 33.40625 -1.421875 27.6875 -1.421875 \nQ 18.265625 -1.421875 13.375 4.4375 \nQ 8.5 10.296875 8.5 21.578125 \nz\nM 31.109375 56 \nz\n\" id=\"DejaVuSans-117\"/>\n       <path d=\"M 18.3125 70.21875 \nL 18.3125 54.6875 \nL 36.8125 54.6875 \nL 36.8125 47.703125 \nL 18.3125 47.703125 \nL 18.3125 18.015625 \nQ 18.3125 11.328125 20.140625 9.421875 \nQ 21.96875 7.515625 27.59375 7.515625 \nL 36.8125 7.515625 \nL 36.8125 0 \nL 27.59375 0 \nQ 17.1875 0 13.234375 3.875 \nQ 9.28125 7.765625 9.28125 18.015625 \nL 9.28125 47.703125 \nL 2.6875 47.703125 \nL 2.6875 54.6875 \nL 9.28125 54.6875 \nL 9.28125 70.21875 \nz\n\" id=\"DejaVuSans-116\"/>\n       <path d=\"M 47.796875 75.984375 \nL 46.390625 68.5 \nL 37.796875 68.5 \nQ 32.90625 68.5 30.6875 66.578125 \nQ 28.46875 64.65625 27.390625 59.515625 \nL 26.421875 54.6875 \nL 41.21875 54.6875 \nL 39.890625 47.703125 \nL 25.09375 47.703125 \nL 15.828125 0 \nL 6.78125 0 \nL 16.109375 47.703125 \nL 7.515625 47.703125 \nL 8.796875 54.6875 \nL 17.390625 54.6875 \nL 18.109375 58.5 \nQ 19.96875 68.171875 24.625 72.078125 \nQ 29.296875 75.984375 39.3125 75.984375 \nz\n\" id=\"DejaVuSans-Oblique-102\"/>\n       <path d=\"M 31 75.875 \nQ 24.46875 64.65625 21.28125 53.65625 \nQ 18.109375 42.671875 18.109375 31.390625 \nQ 18.109375 20.125 21.3125 9.0625 \nQ 24.515625 -2 31 -13.1875 \nL 23.1875 -13.1875 \nQ 15.875 -1.703125 12.234375 9.375 \nQ 8.59375 20.453125 8.59375 31.390625 \nQ 8.59375 42.28125 12.203125 53.3125 \nQ 15.828125 64.359375 23.1875 75.875 \nz\n\" id=\"DejaVuSans-40\"/>\n       <path d=\"M 60.015625 54.6875 \nL 34.90625 27.875 \nL 50.296875 0 \nL 39.984375 0 \nL 28.421875 21.6875 \nL 8.296875 0 \nL -2.59375 0 \nL 24.3125 28.8125 \nL 10.015625 54.6875 \nL 20.3125 54.6875 \nL 30.8125 34.90625 \nL 49.125 54.6875 \nz\n\" id=\"DejaVuSans-Oblique-120\"/>\n       <path d=\"M 8.015625 75.875 \nL 15.828125 75.875 \nQ 23.140625 64.359375 26.78125 53.3125 \nQ 30.421875 42.28125 30.421875 31.390625 \nQ 30.421875 20.453125 26.78125 9.375 \nQ 23.140625 -1.703125 15.828125 -13.1875 \nL 8.015625 -13.1875 \nQ 14.5 -2 17.703125 9.0625 \nQ 20.90625 20.125 20.90625 31.390625 \nQ 20.90625 42.671875 17.703125 53.65625 \nQ 14.5 64.65625 8.015625 75.875 \nz\n\" id=\"DejaVuSans-41\"/>\n      </defs>\n      <use transform=\"translate(0 0.015625)\" xlink:href=\"#DejaVuSans-68\"/>\n      <use transform=\"translate(77.001953 0.015625)\" xlink:href=\"#DejaVuSans-101\"/>\n      <use transform=\"translate(138.525391 0.015625)\" xlink:href=\"#DejaVuSans-99\"/>\n      <use transform=\"translate(193.505859 0.015625)\" xlink:href=\"#DejaVuSans-105\"/>\n      <use transform=\"translate(221.289062 0.015625)\" xlink:href=\"#DejaVuSans-115\"/>\n      <use transform=\"translate(273.388672 0.015625)\" xlink:href=\"#DejaVuSans-105\"/>\n      <use transform=\"translate(301.171875 0.015625)\" xlink:href=\"#DejaVuSans-111\"/>\n      <use transform=\"translate(362.353516 0.015625)\" xlink:href=\"#DejaVuSans-110\"/>\n      <use transform=\"translate(425.732422 0.015625)\" xlink:href=\"#DejaVuSans-32\"/>\n      <use transform=\"translate(457.519531 0.015625)\" xlink:href=\"#DejaVuSans-102\"/>\n      <use transform=\"translate(492.724609 0.015625)\" xlink:href=\"#DejaVuSans-117\"/>\n      <use transform=\"translate(556.103516 0.015625)\" xlink:href=\"#DejaVuSans-110\"/>\n      <use transform=\"translate(619.482422 0.015625)\" xlink:href=\"#DejaVuSans-99\"/>\n      <use transform=\"translate(674.462891 0.015625)\" xlink:href=\"#DejaVuSans-116\"/>\n      <use transform=\"translate(713.671875 0.015625)\" xlink:href=\"#DejaVuSans-105\"/>\n      <use transform=\"translate(741.455078 0.015625)\" xlink:href=\"#DejaVuSans-111\"/>\n      <use transform=\"translate(802.636719 0.015625)\" xlink:href=\"#DejaVuSans-110\"/>\n      <use transform=\"translate(866.015625 0.015625)\" xlink:href=\"#DejaVuSans-32\"/>\n      <use transform=\"translate(897.802734 0.015625)\" xlink:href=\"#DejaVuSans-Oblique-102\"/>\n      <use transform=\"translate(933.007812 0.015625)\" xlink:href=\"#DejaVuSans-40\"/>\n      <use transform=\"translate(972.021484 0.015625)\" xlink:href=\"#DejaVuSans-Oblique-120\"/>\n      <use transform=\"translate(1031.201172 0.015625)\" xlink:href=\"#DejaVuSans-41\"/>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_10\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"md5fa1523c1\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"34.2625\" xlink:href=\"#md5fa1523c1\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 0 -->\n      <g transform=\"translate(20.9 232.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"34.2625\" xlink:href=\"#md5fa1523c1\" y=\"201.259219\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 1 -->\n      <g transform=\"translate(20.9 205.058437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"34.2625\" xlink:href=\"#md5fa1523c1\" y=\"174.079219\"/>\n      </g>\n     </g>\n     <g id=\"text_13\">\n      <!-- 2 -->\n      <g transform=\"translate(20.9 177.878437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_13\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"34.2625\" xlink:href=\"#md5fa1523c1\" y=\"146.899219\"/>\n      </g>\n     </g>\n     <g id=\"text_14\">\n      <!-- 3 -->\n      <g transform=\"translate(20.9 150.698437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-51\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_14\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"34.2625\" xlink:href=\"#md5fa1523c1\" y=\"119.719219\"/>\n      </g>\n     </g>\n     <g id=\"text_15\">\n      <!-- 4 -->\n      <g transform=\"translate(20.9 123.518437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_15\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"34.2625\" xlink:href=\"#md5fa1523c1\" y=\"92.539219\"/>\n      </g>\n     </g>\n     <g id=\"text_16\">\n      <!-- 5 -->\n      <g transform=\"translate(20.9 96.338437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 10.796875 72.90625 \nL 49.515625 72.90625 \nL 49.515625 64.59375 \nL 19.828125 64.59375 \nL 19.828125 46.734375 \nQ 21.96875 47.46875 24.109375 47.828125 \nQ 26.265625 48.1875 28.421875 48.1875 \nQ 40.625 48.1875 47.75 41.5 \nQ 54.890625 34.8125 54.890625 23.390625 \nQ 54.890625 11.625 47.5625 5.09375 \nQ 40.234375 -1.421875 26.90625 -1.421875 \nQ 22.3125 -1.421875 17.546875 -0.640625 \nQ 12.796875 0.140625 7.71875 1.703125 \nL 7.71875 11.625 \nQ 12.109375 9.234375 16.796875 8.0625 \nQ 21.484375 6.890625 26.703125 6.890625 \nQ 35.15625 6.890625 40.078125 11.328125 \nQ 45.015625 15.765625 45.015625 23.390625 \nQ 45.015625 31 40.078125 35.4375 \nQ 35.15625 39.890625 26.703125 39.890625 \nQ 22.75 39.890625 18.8125 39.015625 \nQ 14.890625 38.140625 10.796875 36.28125 \nz\n\" id=\"DejaVuSans-53\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_7\">\n     <g id=\"line2d_16\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"34.2625\" xlink:href=\"#md5fa1523c1\" y=\"65.359219\"/>\n      </g>\n     </g>\n     <g id=\"text_17\">\n      <!-- 6 -->\n      <g transform=\"translate(20.9 69.158437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 33.015625 40.375 \nQ 26.375 40.375 22.484375 35.828125 \nQ 18.609375 31.296875 18.609375 23.390625 \nQ 18.609375 15.53125 22.484375 10.953125 \nQ 26.375 6.390625 33.015625 6.390625 \nQ 39.65625 6.390625 43.53125 10.953125 \nQ 47.40625 15.53125 47.40625 23.390625 \nQ 47.40625 31.296875 43.53125 35.828125 \nQ 39.65625 40.375 33.015625 40.375 \nz\nM 52.59375 71.296875 \nL 52.59375 62.3125 \nQ 48.875 64.0625 45.09375 64.984375 \nQ 41.3125 65.921875 37.59375 65.921875 \nQ 27.828125 65.921875 22.671875 59.328125 \nQ 17.53125 52.734375 16.796875 39.40625 \nQ 19.671875 43.65625 24.015625 45.921875 \nQ 28.375 48.1875 33.59375 48.1875 \nQ 44.578125 48.1875 50.953125 41.515625 \nQ 57.328125 34.859375 57.328125 23.390625 \nQ 57.328125 12.15625 50.6875 5.359375 \nQ 44.046875 -1.421875 33.015625 -1.421875 \nQ 20.359375 -1.421875 13.671875 8.265625 \nQ 6.984375 17.96875 6.984375 36.375 \nQ 6.984375 53.65625 15.1875 63.9375 \nQ 23.390625 74.21875 37.203125 74.21875 \nQ 40.921875 74.21875 44.703125 73.484375 \nQ 48.484375 72.75 52.59375 71.296875 \nz\n\" id=\"DejaVuSans-54\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_8\">\n     <g id=\"line2d_17\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"34.2625\" xlink:href=\"#md5fa1523c1\" y=\"38.179219\"/>\n      </g>\n     </g>\n     <g id=\"text_18\">\n      <!-- 7 -->\n      <g transform=\"translate(20.9 41.978437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 8.203125 72.90625 \nL 55.078125 72.90625 \nL 55.078125 68.703125 \nL 28.609375 0 \nL 18.3125 0 \nL 43.21875 64.59375 \nL 8.203125 64.59375 \nz\n\" id=\"DejaVuSans-55\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-55\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_9\">\n     <g id=\"line2d_18\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"34.2625\" xlink:href=\"#md5fa1523c1\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_19\">\n      <!-- 8 -->\n      <g transform=\"translate(20.9 14.798437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 31.78125 34.625 \nQ 24.75 34.625 20.71875 30.859375 \nQ 16.703125 27.09375 16.703125 20.515625 \nQ 16.703125 13.921875 20.71875 10.15625 \nQ 24.75 6.390625 31.78125 6.390625 \nQ 38.8125 6.390625 42.859375 10.171875 \nQ 46.921875 13.96875 46.921875 20.515625 \nQ 46.921875 27.09375 42.890625 30.859375 \nQ 38.875 34.625 31.78125 34.625 \nz\nM 21.921875 38.8125 \nQ 15.578125 40.375 12.03125 44.71875 \nQ 8.5 49.078125 8.5 55.328125 \nQ 8.5 64.0625 14.71875 69.140625 \nQ 20.953125 74.21875 31.78125 74.21875 \nQ 42.671875 74.21875 48.875 69.140625 \nQ 55.078125 64.0625 55.078125 55.328125 \nQ 55.078125 49.078125 51.53125 44.71875 \nQ 48 40.375 41.703125 38.8125 \nQ 48.828125 37.15625 52.796875 32.3125 \nQ 56.78125 27.484375 56.78125 20.515625 \nQ 56.78125 9.90625 50.3125 4.234375 \nQ 43.84375 -1.421875 31.78125 -1.421875 \nQ 19.734375 -1.421875 13.25 4.234375 \nQ 6.78125 9.90625 6.78125 20.515625 \nQ 6.78125 27.484375 10.78125 32.3125 \nQ 14.796875 37.15625 21.921875 38.8125 \nz\nM 18.3125 54.390625 \nQ 18.3125 48.734375 21.84375 45.5625 \nQ 25.390625 42.390625 31.78125 42.390625 \nQ 38.140625 42.390625 41.71875 45.5625 \nQ 45.3125 48.734375 45.3125 54.390625 \nQ 45.3125 60.0625 41.71875 63.234375 \nQ 38.140625 66.40625 31.78125 66.40625 \nQ 25.390625 66.40625 21.84375 63.234375 \nQ 18.3125 60.0625 18.3125 54.390625 \nz\n\" id=\"DejaVuSans-56\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"text_20\">\n     <!-- $L(y=1, f(x))$ -->\n     <g transform=\"translate(14.8 149.869219)rotate(-90)scale(0.1 -0.1)\">\n      <defs>\n       <path d=\"M 16.796875 72.90625 \nL 26.703125 72.90625 \nL 14.203125 8.203125 \nL 49.703125 8.203125 \nL 48.09375 0 \nL 2.6875 0 \nz\n\" id=\"DejaVuSans-Oblique-76\"/>\n       <path d=\"M 24.8125 -5.078125 \nQ 18.5625 -15.578125 14.625 -18.1875 \nQ 10.6875 -20.796875 4.59375 -20.796875 \nL -2.484375 -20.796875 \nL -0.984375 -13.28125 \nL 4.203125 -13.28125 \nQ 7.953125 -13.28125 10.59375 -11.234375 \nQ 13.234375 -9.1875 16.5 -3.21875 \nL 19.28125 2 \nL 7.171875 54.6875 \nL 16.703125 54.6875 \nL 25.78125 12.796875 \nL 50.875 54.6875 \nL 60.296875 54.6875 \nz\n\" id=\"DejaVuSans-Oblique-121\"/>\n       <path d=\"M 10.59375 45.40625 \nL 73.1875 45.40625 \nL 73.1875 37.203125 \nL 10.59375 37.203125 \nz\nM 10.59375 25.484375 \nL 73.1875 25.484375 \nL 73.1875 17.1875 \nL 10.59375 17.1875 \nz\n\" id=\"DejaVuSans-61\"/>\n       <path d=\"M 11.71875 12.40625 \nL 22.015625 12.40625 \nL 22.015625 4 \nL 14.015625 -11.625 \nL 7.71875 -11.625 \nL 11.71875 4 \nz\n\" id=\"DejaVuSans-44\"/>\n      </defs>\n      <use transform=\"translate(0 0.015625)\" xlink:href=\"#DejaVuSans-Oblique-76\"/>\n      <use transform=\"translate(55.712891 0.015625)\" xlink:href=\"#DejaVuSans-40\"/>\n      <use transform=\"translate(94.726562 0.015625)\" xlink:href=\"#DejaVuSans-Oblique-121\"/>\n      <use transform=\"translate(173.388672 0.015625)\" xlink:href=\"#DejaVuSans-61\"/>\n      <use transform=\"translate(276.660156 0.015625)\" xlink:href=\"#DejaVuSans-49\"/>\n      <use transform=\"translate(340.283203 0.015625)\" xlink:href=\"#DejaVuSans-44\"/>\n      <use transform=\"translate(391.552734 0.015625)\" xlink:href=\"#DejaVuSans-Oblique-102\"/>\n      <use transform=\"translate(426.757812 0.015625)\" xlink:href=\"#DejaVuSans-40\"/>\n      <use transform=\"translate(465.771484 0.015625)\" xlink:href=\"#DejaVuSans-Oblique-120\"/>\n      <use transform=\"translate(524.951172 0.015625)\" xlink:href=\"#DejaVuSans-41\"/>\n      <use transform=\"translate(563.964844 0.015625)\" xlink:href=\"#DejaVuSans-41\"/>\n     </g>\n    </g>\n   </g>\n   <g id=\"line2d_19\">\n    <path clip-path=\"url(#p2d0112e6a1)\" d=\"M 49.480682 201.259219 \nL 201.6625 201.259219 \nL 201.6625 228.439219 \nL 353.844318 228.439219 \n\" style=\"fill:none;stroke:#ffd700;stroke-linecap:square;stroke-width:2;\"/>\n   </g>\n   <g id=\"line2d_20\">\n    <path clip-path=\"url(#p2d0112e6a1)\" d=\"M 49.480682 92.539219 \nL 52.555062 94.735582 \nL 55.629442 96.931946 \nL 58.703822 99.12831 \nL 61.778202 101.324673 \nL 64.852583 103.521037 \nL 67.926963 105.717401 \nL 71.001343 107.913764 \nL 74.075723 110.110128 \nL 77.150103 112.306491 \nL 80.224483 114.502855 \nL 83.298864 116.699219 \nL 86.373244 118.895582 \nL 89.447624 121.091946 \nL 92.522004 123.28831 \nL 95.596384 125.484673 \nL 98.670764 127.681037 \nL 101.745145 129.877401 \nL 104.819525 132.073764 \nL 107.893905 134.270128 \nL 110.968285 136.466491 \nL 114.042665 138.662855 \nL 117.117045 140.859219 \nL 120.191426 143.055582 \nL 123.265806 145.251946 \nL 126.340186 147.44831 \nL 129.414566 149.644673 \nL 132.488946 151.841037 \nL 135.563326 154.037401 \nL 138.637707 156.233764 \nL 141.712087 158.430128 \nL 144.786467 160.626491 \nL 147.860847 162.822855 \nL 150.935227 165.019219 \nL 154.009607 167.215582 \nL 157.083988 169.411946 \nL 160.158368 171.60831 \nL 163.232748 173.804673 \nL 166.307128 176.001037 \nL 169.381508 178.197401 \nL 172.455888 180.393764 \nL 175.530269 182.590128 \nL 178.604649 184.786491 \nL 181.679029 186.982855 \nL 184.753409 189.179219 \nL 187.827789 191.375582 \nL 190.902169 193.571946 \nL 193.97655 195.76831 \nL 197.05093 197.964673 \nL 200.12531 200.161037 \nL 203.19969 202.357401 \nL 206.27407 204.553764 \nL 209.34845 206.750128 \nL 212.422831 208.946491 \nL 215.497211 211.142855 \nL 218.571591 213.339219 \nL 221.645971 215.535582 \nL 224.720351 217.731946 \nL 227.794731 219.92831 \nL 230.869112 222.124673 \nL 233.943492 224.321037 \nL 237.017872 226.517401 \nL 240.092252 228.439219 \nL 243.166632 228.439219 \nL 246.241012 228.439219 \nL 249.315393 228.439219 \nL 252.389773 228.439219 \nL 255.464153 228.439219 \nL 258.538533 228.439219 \nL 261.612913 228.439219 \nL 264.687293 228.439219 \nL 267.761674 228.439219 \nL 270.836054 228.439219 \nL 273.910434 228.439219 \nL 276.984814 228.439219 \nL 280.059194 228.439219 \nL 283.133574 228.439219 \nL 286.207955 228.439219 \nL 289.282335 228.439219 \nL 292.356715 228.439219 \nL 295.431095 228.439219 \nL 298.505475 228.439219 \nL 301.579855 228.439219 \nL 304.654236 228.439219 \nL 307.728616 228.439219 \nL 310.802996 228.439219 \nL 313.877376 228.439219 \nL 316.951756 228.439219 \nL 320.026136 228.439219 \nL 323.100517 228.439219 \nL 326.174897 228.439219 \nL 329.249277 228.439219 \nL 332.323657 228.439219 \nL 335.398037 228.439219 \nL 338.472417 228.439219 \nL 341.546798 228.439219 \nL 344.621178 228.439219 \nL 347.695558 228.439219 \nL 350.769938 228.439219 \nL 353.844318 228.439219 \n\" style=\"fill:none;stroke:#008080;stroke-linecap:square;stroke-width:2;\"/>\n   </g>\n   <g id=\"line2d_21\">\n    <path clip-path=\"url(#p2d0112e6a1)\" d=\"M 49.480682 119.719219 \nL 52.555062 121.915582 \nL 55.629442 124.111946 \nL 58.703822 126.30831 \nL 61.778202 128.504673 \nL 64.852583 130.701037 \nL 67.926963 132.897401 \nL 71.001343 135.093764 \nL 74.075723 137.290128 \nL 77.150103 139.486491 \nL 80.224483 141.682855 \nL 83.298864 143.879219 \nL 86.373244 146.075582 \nL 89.447624 148.271946 \nL 92.522004 150.46831 \nL 95.596384 152.664673 \nL 98.670764 154.861037 \nL 101.745145 157.057401 \nL 104.819525 159.253764 \nL 107.893905 161.450128 \nL 110.968285 163.646491 \nL 114.042665 165.842855 \nL 117.117045 168.039219 \nL 120.191426 170.235582 \nL 123.265806 172.431946 \nL 126.340186 174.62831 \nL 129.414566 176.824673 \nL 132.488946 179.021037 \nL 135.563326 181.217401 \nL 138.637707 183.413764 \nL 141.712087 185.610128 \nL 144.786467 187.806491 \nL 147.860847 190.002855 \nL 150.935227 192.199219 \nL 154.009607 194.395582 \nL 157.083988 196.591946 \nL 160.158368 198.78831 \nL 163.232748 200.984673 \nL 166.307128 203.181037 \nL 169.381508 205.377401 \nL 172.455888 207.573764 \nL 175.530269 209.770128 \nL 178.604649 211.966491 \nL 181.679029 214.162855 \nL 184.753409 216.359219 \nL 187.827789 218.555582 \nL 190.902169 220.751946 \nL 193.97655 222.94831 \nL 197.05093 225.144673 \nL 200.12531 227.341037 \nL 203.19969 228.439219 \nL 206.27407 228.439219 \nL 209.34845 228.439219 \nL 212.422831 228.439219 \nL 215.497211 228.439219 \nL 218.571591 228.439219 \nL 221.645971 228.439219 \nL 224.720351 228.439219 \nL 227.794731 228.439219 \nL 230.869112 228.439219 \nL 233.943492 228.439219 \nL 237.017872 228.439219 \nL 240.092252 228.439219 \nL 243.166632 228.439219 \nL 246.241012 228.439219 \nL 249.315393 228.439219 \nL 252.389773 228.439219 \nL 255.464153 228.439219 \nL 258.538533 228.439219 \nL 261.612913 228.439219 \nL 264.687293 228.439219 \nL 267.761674 228.439219 \nL 270.836054 228.439219 \nL 273.910434 228.439219 \nL 276.984814 228.439219 \nL 280.059194 228.439219 \nL 283.133574 228.439219 \nL 286.207955 228.439219 \nL 289.282335 228.439219 \nL 292.356715 228.439219 \nL 295.431095 228.439219 \nL 298.505475 228.439219 \nL 301.579855 228.439219 \nL 304.654236 228.439219 \nL 307.728616 228.439219 \nL 310.802996 228.439219 \nL 313.877376 228.439219 \nL 316.951756 228.439219 \nL 320.026136 228.439219 \nL 323.100517 228.439219 \nL 326.174897 228.439219 \nL 329.249277 228.439219 \nL 332.323657 228.439219 \nL 335.398037 228.439219 \nL 338.472417 228.439219 \nL 341.546798 228.439219 \nL 344.621178 228.439219 \nL 347.695558 228.439219 \nL 350.769938 228.439219 \nL 353.844318 228.439219 \n\" style=\"fill:none;stroke:#9acd32;stroke-linecap:square;stroke-width:2;\"/>\n   </g>\n   <g id=\"line2d_22\">\n    <path clip-path=\"url(#p2d0112e6a1)\" d=\"M 49.480682 70.877711 \nL 52.555062 73.98708 \nL 55.629442 77.091558 \nL 58.703822 80.190752 \nL 61.778202 83.284235 \nL 64.852583 86.371553 \nL 67.926963 89.452212 \nL 71.001343 92.525687 \nL 74.075723 95.591408 \nL 77.150103 98.648769 \nL 80.224483 101.697116 \nL 83.298864 104.735752 \nL 86.373244 107.763928 \nL 89.447624 110.780845 \nL 92.522004 113.78565 \nL 95.596384 116.777433 \nL 98.670764 119.755225 \nL 101.745145 122.717996 \nL 104.819525 125.664652 \nL 107.893905 128.594032 \nL 110.968285 131.504912 \nL 114.042665 134.395996 \nL 117.117045 137.265921 \nL 120.191426 140.113252 \nL 123.265806 142.936487 \nL 126.340186 145.734055 \nL 129.414566 148.504318 \nL 132.488946 151.245574 \nL 135.563326 153.95606 \nL 138.637707 156.633958 \nL 141.712087 159.2774 \nL 144.786467 161.884474 \nL 147.860847 164.453233 \nL 150.935227 166.981706 \nL 154.009607 169.467907 \nL 157.083988 171.909846 \nL 160.158368 174.305546 \nL 163.232748 176.653055 \nL 166.307128 178.95046 \nL 169.381508 181.195907 \nL 172.455888 183.387616 \nL 175.530269 185.523896 \nL 178.604649 187.603167 \nL 181.679029 189.623973 \nL 184.753409 191.584997 \nL 187.827789 193.485082 \nL 190.902169 195.323239 \nL 193.97655 197.098661 \nL 197.05093 198.810735 \nL 200.12531 200.459047 \nL 203.19969 202.043388 \nL 206.27407 203.563759 \nL 209.34845 205.020369 \nL 212.422831 206.413629 \nL 215.497211 207.744155 \nL 218.571591 209.012754 \nL 221.645971 210.220412 \nL 224.720351 211.368289 \nL 227.794731 212.457701 \nL 230.869112 213.490103 \nL 233.943492 214.467078 \nL 237.017872 215.390313 \nL 240.092252 216.261591 \nL 243.166632 217.082766 \nL 246.241012 217.855749 \nL 249.315393 218.582492 \nL 252.389773 219.264975 \nL 255.464153 219.905184 \nL 258.538533 220.505108 \nL 261.612913 221.066717 \nL 264.687293 221.591958 \nL 267.761674 222.082742 \nL 270.836054 222.540939 \nL 273.910434 222.968367 \nL 276.984814 223.366787 \nL 280.059194 223.737902 \nL 283.133574 224.08335 \nL 286.207955 224.404701 \nL 289.282335 224.70346 \nL 292.356715 224.981059 \nL 295.431095 225.238862 \nL 298.505475 225.478164 \nL 301.579855 225.700191 \nL 304.654236 225.906104 \nL 307.728616 226.096994 \nL 310.802996 226.273894 \nL 313.877376 226.437772 \nL 316.951756 226.589538 \nL 320.026136 226.730045 \nL 323.100517 226.860092 \nL 326.174897 226.980427 \nL 329.249277 227.09175 \nL 332.323657 227.194711 \nL 335.398037 227.28992 \nL 338.472417 227.377943 \nL 341.546798 227.459308 \nL 344.621178 227.534508 \nL 347.695558 227.603997 \nL 350.769938 227.668202 \nL 353.844318 227.727516 \n\" style=\"fill:none;stroke:#6495ed;stroke-linecap:square;stroke-width:2;\"/>\n   </g>\n   <g id=\"line2d_23\">\n    <path clip-path=\"url(#p2d0112e6a1)\" d=\"M 129.17298 -1 \nL 129.414566 0.014627 \nL 132.488946 12.571615 \nL 135.563326 24.773636 \nL 138.637707 36.620688 \nL 141.712087 48.112772 \nL 144.786467 59.249889 \nL 147.860847 70.032038 \nL 150.935227 80.459219 \nL 154.009607 90.531432 \nL 157.083988 100.248677 \nL 160.158368 109.610954 \nL 163.232748 118.618264 \nL 166.307128 127.270605 \nL 169.381508 135.567979 \nL 172.455888 143.510385 \nL 175.530269 151.097823 \nL 178.604649 158.330293 \nL 181.679029 165.207795 \nL 184.753409 171.73033 \nL 187.827789 177.897896 \nL 190.902169 183.710495 \nL 193.97655 189.168126 \nL 197.05093 194.270789 \nL 200.12531 199.018484 \nL 203.19969 203.411211 \nL 206.27407 207.448971 \nL 209.34845 211.131762 \nL 212.422831 214.459586 \nL 215.497211 217.432442 \nL 218.571591 220.05033 \nL 221.645971 222.31325 \nL 224.720351 224.221202 \nL 227.794731 225.774187 \nL 230.869112 226.972203 \nL 233.943492 227.815252 \nL 237.017872 228.303333 \nL 240.092252 228.439219 \nL 243.166632 228.439219 \nL 246.241012 228.439219 \nL 249.315393 228.439219 \nL 252.389773 228.439219 \nL 255.464153 228.439219 \nL 258.538533 228.439219 \nL 261.612913 228.439219 \nL 264.687293 228.439219 \nL 267.761674 228.439219 \nL 270.836054 228.439219 \nL 273.910434 228.439219 \nL 276.984814 228.439219 \nL 280.059194 228.439219 \nL 283.133574 228.439219 \nL 286.207955 228.439219 \nL 289.282335 228.439219 \nL 292.356715 228.439219 \nL 295.431095 228.439219 \nL 298.505475 228.439219 \nL 301.579855 228.439219 \nL 304.654236 228.439219 \nL 307.728616 228.439219 \nL 310.802996 228.439219 \nL 313.877376 228.439219 \nL 316.951756 228.439219 \nL 320.026136 228.439219 \nL 323.100517 228.439219 \nL 326.174897 228.439219 \nL 329.249277 228.439219 \nL 332.323657 228.439219 \nL 335.398037 228.439219 \nL 338.472417 228.439219 \nL 341.546798 228.439219 \nL 344.621178 228.439219 \nL 347.695558 228.439219 \nL 350.769938 228.439219 \nL 353.844318 228.439219 \n\" style=\"fill:none;stroke:#ffa500;stroke-linecap:square;stroke-width:2;\"/>\n   </g>\n   <g id=\"line2d_24\">\n    <path clip-path=\"url(#p2d0112e6a1)\" d=\"M 121.372587 -1 \nL 123.265806 4.410128 \nL 126.340186 13.195582 \nL 129.414566 21.981037 \nL 132.488946 30.766491 \nL 135.563326 39.551946 \nL 138.637707 48.337401 \nL 141.712087 57.122855 \nL 144.786467 65.90831 \nL 147.860847 74.693764 \nL 150.935227 83.479219 \nL 154.009607 92.264673 \nL 157.083988 101.050128 \nL 160.158368 109.835582 \nL 163.232748 118.621037 \nL 166.307128 127.270605 \nL 169.381508 135.567979 \nL 172.455888 143.510385 \nL 175.530269 151.097823 \nL 178.604649 158.330293 \nL 181.679029 165.207795 \nL 184.753409 171.73033 \nL 187.827789 177.897896 \nL 190.902169 183.710495 \nL 193.97655 189.168126 \nL 197.05093 194.270789 \nL 200.12531 199.018484 \nL 203.19969 203.411211 \nL 206.27407 207.448971 \nL 209.34845 211.131762 \nL 212.422831 214.459586 \nL 215.497211 217.432442 \nL 218.571591 220.05033 \nL 221.645971 222.31325 \nL 224.720351 224.221202 \nL 227.794731 225.774187 \nL 230.869112 226.972203 \nL 233.943492 227.815252 \nL 237.017872 228.303333 \nL 240.092252 228.439219 \nL 243.166632 228.439219 \nL 246.241012 228.439219 \nL 249.315393 228.439219 \nL 252.389773 228.439219 \nL 255.464153 228.439219 \nL 258.538533 228.439219 \nL 261.612913 228.439219 \nL 264.687293 228.439219 \nL 267.761674 228.439219 \nL 270.836054 228.439219 \nL 273.910434 228.439219 \nL 276.984814 228.439219 \nL 280.059194 228.439219 \nL 283.133574 228.439219 \nL 286.207955 228.439219 \nL 289.282335 228.439219 \nL 292.356715 228.439219 \nL 295.431095 228.439219 \nL 298.505475 228.439219 \nL 301.579855 228.439219 \nL 304.654236 228.439219 \nL 307.728616 228.439219 \nL 310.802996 228.439219 \nL 313.877376 228.439219 \nL 316.951756 228.439219 \nL 320.026136 228.439219 \nL 323.100517 228.439219 \nL 326.174897 228.439219 \nL 329.249277 228.439219 \nL 332.323657 228.439219 \nL 335.398037 228.439219 \nL 338.472417 228.439219 \nL 341.546798 228.439219 \nL 344.621178 228.439219 \nL 347.695558 228.439219 \nL 350.769938 228.439219 \nL 353.844318 228.439219 \n\" style=\"fill:none;stroke:#9932cc;stroke-dasharray:7.4,3.2;stroke-dashoffset:0;stroke-width:2;\"/>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 34.2625 228.439219 \nL 34.2625 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 369.0625 228.439219 \nL 369.0625 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 34.2625 228.439219 \nL 369.0625 228.439219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 34.2625 10.999219 \nL 369.0625 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"legend_1\">\n    <g id=\"patch_7\">\n     <path d=\"M 231.246875 107.067969 \nL 362.0625 107.067969 \nQ 364.0625 107.067969 364.0625 105.067969 \nL 364.0625 17.999219 \nQ 364.0625 15.999219 362.0625 15.999219 \nL 231.246875 15.999219 \nQ 229.246875 15.999219 229.246875 17.999219 \nL 229.246875 105.067969 \nQ 229.246875 107.067969 231.246875 107.067969 \nz\n\" style=\"fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;\"/>\n    </g>\n    <g id=\"line2d_25\">\n     <path d=\"M 233.246875 24.097656 \nL 253.246875 24.097656 \n\" style=\"fill:none;stroke:#ffd700;stroke-linecap:square;stroke-width:2;\"/>\n    </g>\n    <g id=\"line2d_26\"/>\n    <g id=\"text_21\">\n     <!-- Zero-one loss -->\n     <g transform=\"translate(261.246875 27.597656)scale(0.1 -0.1)\">\n      <defs>\n       <path d=\"M 5.609375 72.90625 \nL 62.890625 72.90625 \nL 62.890625 65.375 \nL 16.796875 8.296875 \nL 64.015625 8.296875 \nL 64.015625 0 \nL 4.5 0 \nL 4.5 7.515625 \nL 50.59375 64.59375 \nL 5.609375 64.59375 \nz\n\" id=\"DejaVuSans-90\"/>\n       <path d=\"M 41.109375 46.296875 \nQ 39.59375 47.171875 37.8125 47.578125 \nQ 36.03125 48 33.890625 48 \nQ 26.265625 48 22.1875 43.046875 \nQ 18.109375 38.09375 18.109375 28.8125 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.1875 \nQ 20.953125 51.171875 25.484375 53.578125 \nQ 30.03125 56 36.53125 56 \nQ 37.453125 56 38.578125 55.875 \nQ 39.703125 55.765625 41.0625 55.515625 \nz\n\" id=\"DejaVuSans-114\"/>\n       <path d=\"M 4.890625 31.390625 \nL 31.203125 31.390625 \nL 31.203125 23.390625 \nL 4.890625 23.390625 \nz\n\" id=\"DejaVuSans-45\"/>\n       <path d=\"M 9.421875 75.984375 \nL 18.40625 75.984375 \nL 18.40625 0 \nL 9.421875 0 \nz\n\" id=\"DejaVuSans-108\"/>\n      </defs>\n      <use xlink:href=\"#DejaVuSans-90\"/>\n      <use x=\"68.505859\" xlink:href=\"#DejaVuSans-101\"/>\n      <use x=\"130.029297\" xlink:href=\"#DejaVuSans-114\"/>\n      <use x=\"168.892578\" xlink:href=\"#DejaVuSans-111\"/>\n      <use x=\"231.949219\" xlink:href=\"#DejaVuSans-45\"/>\n      <use x=\"269.908203\" xlink:href=\"#DejaVuSans-111\"/>\n      <use x=\"331.089844\" xlink:href=\"#DejaVuSans-110\"/>\n      <use x=\"394.46875\" xlink:href=\"#DejaVuSans-101\"/>\n      <use x=\"455.992188\" xlink:href=\"#DejaVuSans-32\"/>\n      <use x=\"487.779297\" xlink:href=\"#DejaVuSans-108\"/>\n      <use x=\"515.5625\" xlink:href=\"#DejaVuSans-111\"/>\n      <use x=\"576.744141\" xlink:href=\"#DejaVuSans-115\"/>\n      <use x=\"628.84375\" xlink:href=\"#DejaVuSans-115\"/>\n     </g>\n    </g>\n    <g id=\"line2d_27\">\n     <path d=\"M 233.246875 38.775781 \nL 253.246875 38.775781 \n\" style=\"fill:none;stroke:#008080;stroke-linecap:square;stroke-width:2;\"/>\n    </g>\n    <g id=\"line2d_28\"/>\n    <g id=\"text_22\">\n     <!-- Hinge loss -->\n     <g transform=\"translate(261.246875 42.275781)scale(0.1 -0.1)\">\n      <defs>\n       <path d=\"M 9.8125 72.90625 \nL 19.671875 72.90625 \nL 19.671875 43.015625 \nL 55.515625 43.015625 \nL 55.515625 72.90625 \nL 65.375 72.90625 \nL 65.375 0 \nL 55.515625 0 \nL 55.515625 34.71875 \nL 19.671875 34.71875 \nL 19.671875 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-72\"/>\n       <path d=\"M 45.40625 27.984375 \nQ 45.40625 37.75 41.375 43.109375 \nQ 37.359375 48.484375 30.078125 48.484375 \nQ 22.859375 48.484375 18.828125 43.109375 \nQ 14.796875 37.75 14.796875 27.984375 \nQ 14.796875 18.265625 18.828125 12.890625 \nQ 22.859375 7.515625 30.078125 7.515625 \nQ 37.359375 7.515625 41.375 12.890625 \nQ 45.40625 18.265625 45.40625 27.984375 \nz\nM 54.390625 6.78125 \nQ 54.390625 -7.171875 48.1875 -13.984375 \nQ 42 -20.796875 29.203125 -20.796875 \nQ 24.46875 -20.796875 20.265625 -20.09375 \nQ 16.0625 -19.390625 12.109375 -17.921875 \nL 12.109375 -9.1875 \nQ 16.0625 -11.328125 19.921875 -12.34375 \nQ 23.78125 -13.375 27.78125 -13.375 \nQ 36.625 -13.375 41.015625 -8.765625 \nQ 45.40625 -4.15625 45.40625 5.171875 \nL 45.40625 9.625 \nQ 42.625 4.78125 38.28125 2.390625 \nQ 33.9375 0 27.875 0 \nQ 17.828125 0 11.671875 7.65625 \nQ 5.515625 15.328125 5.515625 27.984375 \nQ 5.515625 40.671875 11.671875 48.328125 \nQ 17.828125 56 27.875 56 \nQ 33.9375 56 38.28125 53.609375 \nQ 42.625 51.21875 45.40625 46.390625 \nL 45.40625 54.6875 \nL 54.390625 54.6875 \nz\n\" id=\"DejaVuSans-103\"/>\n      </defs>\n      <use xlink:href=\"#DejaVuSans-72\"/>\n      <use x=\"75.195312\" xlink:href=\"#DejaVuSans-105\"/>\n      <use x=\"102.978516\" xlink:href=\"#DejaVuSans-110\"/>\n      <use x=\"166.357422\" xlink:href=\"#DejaVuSans-103\"/>\n      <use x=\"229.833984\" xlink:href=\"#DejaVuSans-101\"/>\n      <use x=\"291.357422\" xlink:href=\"#DejaVuSans-32\"/>\n      <use x=\"323.144531\" xlink:href=\"#DejaVuSans-108\"/>\n      <use x=\"350.927734\" xlink:href=\"#DejaVuSans-111\"/>\n      <use x=\"412.109375\" xlink:href=\"#DejaVuSans-115\"/>\n      <use x=\"464.208984\" xlink:href=\"#DejaVuSans-115\"/>\n     </g>\n    </g>\n    <g id=\"line2d_29\">\n     <path d=\"M 233.246875 53.453906 \nL 253.246875 53.453906 \n\" style=\"fill:none;stroke:#9acd32;stroke-linecap:square;stroke-width:2;\"/>\n    </g>\n    <g id=\"line2d_30\"/>\n    <g id=\"text_23\">\n     <!-- Perceptron loss -->\n     <g transform=\"translate(261.246875 56.953906)scale(0.1 -0.1)\">\n      <defs>\n       <path d=\"M 19.671875 64.796875 \nL 19.671875 37.40625 \nL 32.078125 37.40625 \nQ 38.96875 37.40625 42.71875 40.96875 \nQ 46.484375 44.53125 46.484375 51.125 \nQ 46.484375 57.671875 42.71875 61.234375 \nQ 38.96875 64.796875 32.078125 64.796875 \nz\nM 9.8125 72.90625 \nL 32.078125 72.90625 \nQ 44.34375 72.90625 50.609375 67.359375 \nQ 56.890625 61.8125 56.890625 51.125 \nQ 56.890625 40.328125 50.609375 34.8125 \nQ 44.34375 29.296875 32.078125 29.296875 \nL 19.671875 29.296875 \nL 19.671875 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-80\"/>\n       <path d=\"M 18.109375 8.203125 \nL 18.109375 -20.796875 \nL 9.078125 -20.796875 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.390625 \nQ 20.953125 51.265625 25.265625 53.625 \nQ 29.59375 56 35.59375 56 \nQ 45.5625 56 51.78125 48.09375 \nQ 58.015625 40.1875 58.015625 27.296875 \nQ 58.015625 14.40625 51.78125 6.484375 \nQ 45.5625 -1.421875 35.59375 -1.421875 \nQ 29.59375 -1.421875 25.265625 0.953125 \nQ 20.953125 3.328125 18.109375 8.203125 \nz\nM 48.6875 27.296875 \nQ 48.6875 37.203125 44.609375 42.84375 \nQ 40.53125 48.484375 33.40625 48.484375 \nQ 26.265625 48.484375 22.1875 42.84375 \nQ 18.109375 37.203125 18.109375 27.296875 \nQ 18.109375 17.390625 22.1875 11.75 \nQ 26.265625 6.109375 33.40625 6.109375 \nQ 40.53125 6.109375 44.609375 11.75 \nQ 48.6875 17.390625 48.6875 27.296875 \nz\n\" id=\"DejaVuSans-112\"/>\n      </defs>\n      <use xlink:href=\"#DejaVuSans-80\"/>\n      <use x=\"56.677734\" xlink:href=\"#DejaVuSans-101\"/>\n      <use x=\"118.201172\" xlink:href=\"#DejaVuSans-114\"/>\n      <use x=\"157.064453\" xlink:href=\"#DejaVuSans-99\"/>\n      <use x=\"212.044922\" xlink:href=\"#DejaVuSans-101\"/>\n      <use x=\"273.568359\" xlink:href=\"#DejaVuSans-112\"/>\n      <use x=\"337.044922\" xlink:href=\"#DejaVuSans-116\"/>\n      <use x=\"376.253906\" xlink:href=\"#DejaVuSans-114\"/>\n      <use x=\"415.117188\" xlink:href=\"#DejaVuSans-111\"/>\n      <use x=\"476.298828\" xlink:href=\"#DejaVuSans-110\"/>\n      <use x=\"539.677734\" xlink:href=\"#DejaVuSans-32\"/>\n      <use x=\"571.464844\" xlink:href=\"#DejaVuSans-108\"/>\n      <use x=\"599.248047\" xlink:href=\"#DejaVuSans-111\"/>\n      <use x=\"660.429688\" xlink:href=\"#DejaVuSans-115\"/>\n      <use x=\"712.529297\" xlink:href=\"#DejaVuSans-115\"/>\n     </g>\n    </g>\n    <g id=\"line2d_31\">\n     <path d=\"M 233.246875 68.132031 \nL 253.246875 68.132031 \n\" style=\"fill:none;stroke:#6495ed;stroke-linecap:square;stroke-width:2;\"/>\n    </g>\n    <g id=\"line2d_32\"/>\n    <g id=\"text_24\">\n     <!-- Log loss -->\n     <g transform=\"translate(261.246875 71.632031)scale(0.1 -0.1)\">\n      <defs>\n       <path d=\"M 9.8125 72.90625 \nL 19.671875 72.90625 \nL 19.671875 8.296875 \nL 55.171875 8.296875 \nL 55.171875 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-76\"/>\n      </defs>\n      <use xlink:href=\"#DejaVuSans-76\"/>\n      <use x=\"53.962891\" xlink:href=\"#DejaVuSans-111\"/>\n      <use x=\"115.144531\" xlink:href=\"#DejaVuSans-103\"/>\n      <use x=\"178.621094\" xlink:href=\"#DejaVuSans-32\"/>\n      <use x=\"210.408203\" xlink:href=\"#DejaVuSans-108\"/>\n      <use x=\"238.191406\" xlink:href=\"#DejaVuSans-111\"/>\n      <use x=\"299.373047\" xlink:href=\"#DejaVuSans-115\"/>\n      <use x=\"351.472656\" xlink:href=\"#DejaVuSans-115\"/>\n     </g>\n    </g>\n    <g id=\"line2d_33\">\n     <path d=\"M 233.246875 82.810156 \nL 253.246875 82.810156 \n\" style=\"fill:none;stroke:#ffa500;stroke-linecap:square;stroke-width:2;\"/>\n    </g>\n    <g id=\"line2d_34\"/>\n    <g id=\"text_25\">\n     <!-- Squared hinge loss -->\n     <g transform=\"translate(261.246875 86.310156)scale(0.1 -0.1)\">\n      <defs>\n       <path d=\"M 53.515625 70.515625 \nL 53.515625 60.890625 \nQ 47.90625 63.578125 42.921875 64.890625 \nQ 37.9375 66.21875 33.296875 66.21875 \nQ 25.25 66.21875 20.875 63.09375 \nQ 16.5 59.96875 16.5 54.203125 \nQ 16.5 49.359375 19.40625 46.890625 \nQ 22.3125 44.4375 30.421875 42.921875 \nL 36.375 41.703125 \nQ 47.40625 39.59375 52.65625 34.296875 \nQ 57.90625 29 57.90625 20.125 \nQ 57.90625 9.515625 50.796875 4.046875 \nQ 43.703125 -1.421875 29.984375 -1.421875 \nQ 24.8125 -1.421875 18.96875 -0.25 \nQ 13.140625 0.921875 6.890625 3.21875 \nL 6.890625 13.375 \nQ 12.890625 10.015625 18.65625 8.296875 \nQ 24.421875 6.59375 29.984375 6.59375 \nQ 38.421875 6.59375 43.015625 9.90625 \nQ 47.609375 13.234375 47.609375 19.390625 \nQ 47.609375 24.75 44.3125 27.78125 \nQ 41.015625 30.8125 33.5 32.328125 \nL 27.484375 33.5 \nQ 16.453125 35.6875 11.515625 40.375 \nQ 6.59375 45.0625 6.59375 53.421875 \nQ 6.59375 63.09375 13.40625 68.65625 \nQ 20.21875 74.21875 32.171875 74.21875 \nQ 37.3125 74.21875 42.625 73.28125 \nQ 47.953125 72.359375 53.515625 70.515625 \nz\n\" id=\"DejaVuSans-83\"/>\n       <path d=\"M 14.796875 27.296875 \nQ 14.796875 17.390625 18.875 11.75 \nQ 22.953125 6.109375 30.078125 6.109375 \nQ 37.203125 6.109375 41.296875 11.75 \nQ 45.40625 17.390625 45.40625 27.296875 \nQ 45.40625 37.203125 41.296875 42.84375 \nQ 37.203125 48.484375 30.078125 48.484375 \nQ 22.953125 48.484375 18.875 42.84375 \nQ 14.796875 37.203125 14.796875 27.296875 \nz\nM 45.40625 8.203125 \nQ 42.578125 3.328125 38.25 0.953125 \nQ 33.9375 -1.421875 27.875 -1.421875 \nQ 17.96875 -1.421875 11.734375 6.484375 \nQ 5.515625 14.40625 5.515625 27.296875 \nQ 5.515625 40.1875 11.734375 48.09375 \nQ 17.96875 56 27.875 56 \nQ 33.9375 56 38.25 53.625 \nQ 42.578125 51.265625 45.40625 46.390625 \nL 45.40625 54.6875 \nL 54.390625 54.6875 \nL 54.390625 -20.796875 \nL 45.40625 -20.796875 \nz\n\" id=\"DejaVuSans-113\"/>\n       <path d=\"M 34.28125 27.484375 \nQ 23.390625 27.484375 19.1875 25 \nQ 14.984375 22.515625 14.984375 16.5 \nQ 14.984375 11.71875 18.140625 8.90625 \nQ 21.296875 6.109375 26.703125 6.109375 \nQ 34.1875 6.109375 38.703125 11.40625 \nQ 43.21875 16.703125 43.21875 25.484375 \nL 43.21875 27.484375 \nz\nM 52.203125 31.203125 \nL 52.203125 0 \nL 43.21875 0 \nL 43.21875 8.296875 \nQ 40.140625 3.328125 35.546875 0.953125 \nQ 30.953125 -1.421875 24.3125 -1.421875 \nQ 15.921875 -1.421875 10.953125 3.296875 \nQ 6 8.015625 6 15.921875 \nQ 6 25.140625 12.171875 29.828125 \nQ 18.359375 34.515625 30.609375 34.515625 \nL 43.21875 34.515625 \nL 43.21875 35.40625 \nQ 43.21875 41.609375 39.140625 45 \nQ 35.0625 48.390625 27.6875 48.390625 \nQ 23 48.390625 18.546875 47.265625 \nQ 14.109375 46.140625 10.015625 43.890625 \nL 10.015625 52.203125 \nQ 14.9375 54.109375 19.578125 55.046875 \nQ 24.21875 56 28.609375 56 \nQ 40.484375 56 46.34375 49.84375 \nQ 52.203125 43.703125 52.203125 31.203125 \nz\n\" id=\"DejaVuSans-97\"/>\n       <path d=\"M 45.40625 46.390625 \nL 45.40625 75.984375 \nL 54.390625 75.984375 \nL 54.390625 0 \nL 45.40625 0 \nL 45.40625 8.203125 \nQ 42.578125 3.328125 38.25 0.953125 \nQ 33.9375 -1.421875 27.875 -1.421875 \nQ 17.96875 -1.421875 11.734375 6.484375 \nQ 5.515625 14.40625 5.515625 27.296875 \nQ 5.515625 40.1875 11.734375 48.09375 \nQ 17.96875 56 27.875 56 \nQ 33.9375 56 38.25 53.625 \nQ 42.578125 51.265625 45.40625 46.390625 \nz\nM 14.796875 27.296875 \nQ 14.796875 17.390625 18.875 11.75 \nQ 22.953125 6.109375 30.078125 6.109375 \nQ 37.203125 6.109375 41.296875 11.75 \nQ 45.40625 17.390625 45.40625 27.296875 \nQ 45.40625 37.203125 41.296875 42.84375 \nQ 37.203125 48.484375 30.078125 48.484375 \nQ 22.953125 48.484375 18.875 42.84375 \nQ 14.796875 37.203125 14.796875 27.296875 \nz\n\" id=\"DejaVuSans-100\"/>\n       <path d=\"M 54.890625 33.015625 \nL 54.890625 0 \nL 45.90625 0 \nL 45.90625 32.71875 \nQ 45.90625 40.484375 42.875 44.328125 \nQ 39.84375 48.1875 33.796875 48.1875 \nQ 26.515625 48.1875 22.3125 43.546875 \nQ 18.109375 38.921875 18.109375 30.90625 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 75.984375 \nL 18.109375 75.984375 \nL 18.109375 46.1875 \nQ 21.34375 51.125 25.703125 53.5625 \nQ 30.078125 56 35.796875 56 \nQ 45.21875 56 50.046875 50.171875 \nQ 54.890625 44.34375 54.890625 33.015625 \nz\n\" id=\"DejaVuSans-104\"/>\n      </defs>\n      <use xlink:href=\"#DejaVuSans-83\"/>\n      <use x=\"63.476562\" xlink:href=\"#DejaVuSans-113\"/>\n      <use x=\"126.953125\" xlink:href=\"#DejaVuSans-117\"/>\n      <use x=\"190.332031\" xlink:href=\"#DejaVuSans-97\"/>\n      <use x=\"251.611328\" xlink:href=\"#DejaVuSans-114\"/>\n      <use x=\"290.474609\" xlink:href=\"#DejaVuSans-101\"/>\n      <use x=\"351.998047\" xlink:href=\"#DejaVuSans-100\"/>\n      <use x=\"415.474609\" xlink:href=\"#DejaVuSans-32\"/>\n      <use x=\"447.261719\" xlink:href=\"#DejaVuSans-104\"/>\n      <use x=\"510.640625\" xlink:href=\"#DejaVuSans-105\"/>\n      <use x=\"538.423828\" xlink:href=\"#DejaVuSans-110\"/>\n      <use x=\"601.802734\" xlink:href=\"#DejaVuSans-103\"/>\n      <use x=\"665.279297\" xlink:href=\"#DejaVuSans-101\"/>\n      <use x=\"726.802734\" xlink:href=\"#DejaVuSans-32\"/>\n      <use x=\"758.589844\" xlink:href=\"#DejaVuSans-108\"/>\n      <use x=\"786.373047\" xlink:href=\"#DejaVuSans-111\"/>\n      <use x=\"847.554688\" xlink:href=\"#DejaVuSans-115\"/>\n      <use x=\"899.654297\" xlink:href=\"#DejaVuSans-115\"/>\n     </g>\n    </g>\n    <g id=\"line2d_35\">\n     <path d=\"M 233.246875 97.488281 \nL 253.246875 97.488281 \n\" style=\"fill:none;stroke:#9932cc;stroke-dasharray:7.4,3.2;stroke-dashoffset:0;stroke-width:2;\"/>\n    </g>\n    <g id=\"line2d_36\"/>\n    <g id=\"text_26\">\n     <!-- Modified Huber loss -->\n     <g transform=\"translate(261.246875 100.988281)scale(0.1 -0.1)\">\n      <defs>\n       <path d=\"M 9.8125 72.90625 \nL 24.515625 72.90625 \nL 43.109375 23.296875 \nL 61.8125 72.90625 \nL 76.515625 72.90625 \nL 76.515625 0 \nL 66.890625 0 \nL 66.890625 64.015625 \nL 48.09375 14.015625 \nL 38.1875 14.015625 \nL 19.390625 64.015625 \nL 19.390625 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-77\"/>\n       <path d=\"M 48.6875 27.296875 \nQ 48.6875 37.203125 44.609375 42.84375 \nQ 40.53125 48.484375 33.40625 48.484375 \nQ 26.265625 48.484375 22.1875 42.84375 \nQ 18.109375 37.203125 18.109375 27.296875 \nQ 18.109375 17.390625 22.1875 11.75 \nQ 26.265625 6.109375 33.40625 6.109375 \nQ 40.53125 6.109375 44.609375 11.75 \nQ 48.6875 17.390625 48.6875 27.296875 \nz\nM 18.109375 46.390625 \nQ 20.953125 51.265625 25.265625 53.625 \nQ 29.59375 56 35.59375 56 \nQ 45.5625 56 51.78125 48.09375 \nQ 58.015625 40.1875 58.015625 27.296875 \nQ 58.015625 14.40625 51.78125 6.484375 \nQ 45.5625 -1.421875 35.59375 -1.421875 \nQ 29.59375 -1.421875 25.265625 0.953125 \nQ 20.953125 3.328125 18.109375 8.203125 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 75.984375 \nL 18.109375 75.984375 \nz\n\" id=\"DejaVuSans-98\"/>\n      </defs>\n      <use xlink:href=\"#DejaVuSans-77\"/>\n      <use x=\"86.279297\" xlink:href=\"#DejaVuSans-111\"/>\n      <use x=\"147.460938\" xlink:href=\"#DejaVuSans-100\"/>\n      <use x=\"210.9375\" xlink:href=\"#DejaVuSans-105\"/>\n      <use x=\"238.720703\" xlink:href=\"#DejaVuSans-102\"/>\n      <use x=\"273.925781\" xlink:href=\"#DejaVuSans-105\"/>\n      <use x=\"301.708984\" xlink:href=\"#DejaVuSans-101\"/>\n      <use x=\"363.232422\" xlink:href=\"#DejaVuSans-100\"/>\n      <use x=\"426.708984\" xlink:href=\"#DejaVuSans-32\"/>\n      <use x=\"458.496094\" xlink:href=\"#DejaVuSans-72\"/>\n      <use x=\"533.691406\" xlink:href=\"#DejaVuSans-117\"/>\n      <use x=\"597.070312\" xlink:href=\"#DejaVuSans-98\"/>\n      <use x=\"660.546875\" xlink:href=\"#DejaVuSans-101\"/>\n      <use x=\"722.070312\" xlink:href=\"#DejaVuSans-114\"/>\n      <use x=\"763.183594\" xlink:href=\"#DejaVuSans-32\"/>\n      <use x=\"794.970703\" xlink:href=\"#DejaVuSans-108\"/>\n      <use x=\"822.753906\" xlink:href=\"#DejaVuSans-111\"/>\n      <use x=\"883.935547\" xlink:href=\"#DejaVuSans-115\"/>\n      <use x=\"936.035156\" xlink:href=\"#DejaVuSans-115\"/>\n     </g>\n    </g>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p2d0112e6a1\">\n   <rect height=\"217.44\" width=\"334.8\" x=\"34.2625\" y=\"10.999219\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAENCAYAAAAMmd6uAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABXB0lEQVR4nO3dd3hU1fbw8e+aySSTnkBCDRB6S0JC70S6gkgRAQtiQbnqvVauelVUrt5Xr/ysV0VsNDsgKqAivUpHauih1xRILzP7/WMmIYGE9JlJsj/Pk2cyM2fOWRPCypm9zl5blFJomqZpVZ/B2QFomqZpjqETvqZpWjWhE76maVo1oRO+pmlaNaETvqZpWjWhE76maVo14dCELyJPisheEdkjIt+IiNmRx9c0TavOHJbwRaQ+8A+go1IqDDACYx11fE3TtOrO0UM6boCniLgBXsAZBx9f0zSt2nJz1IGUUqdFZBpwAkgDliqlll67nYg8BDwE4O3t3aFVq1aOCrFasmQq4o+kIQI1W3gheU8BUk5AxkXwrAeedZ0Wo6Zpxbdt27ZLSqnggp4TR7VWEJFAYD4wBkgEfgDmKaXmFvaajh07qq1btzokvups4b0xXNiTQt//NKbZoBpXnzj+PawfA3UGQN/r/jZrmuaCRGSbUqpjQc85ckinP3BMKXVRKZUFLAC6O/D4WiGaDbYl+SO/x+d/olYf2+3F9WDJdHBUmqaVN0cm/BNAVxHxEhEB+gH7HXh8rRBNBgQiBji5/grpl7OvPuFZG/xagyUV4vUnLU2r7ByW8JVSm4B5wHZgt/3YMxx1fK1wXkEm6nXyxZqtiF2RmP/J2tG22/MrHR2WpmnlzGFFWwCl1MvAy448plY8zQbX4PSmJOKPpOV/ovZNcOhjuLAKeMEZoWlAVlYWp06dIj093dmhaC7CbDYTEhKCyWQq9mscmvA119WkfyD1OvniW9cj/xP5xvEzwOhx/Yu1Cnfq1Cl8fX0JDQ3FNiKqVWdKKeLi4jh16hSNGzcu9ut0awUNAJOX8fpkD2CuBf5twZIGcVscH5gGQHp6OjVr1tTJXgNARKhZs2aJP/HphK/lo5S6flinVrTtVo/jO5VO9lpepfl90Alfy6WUYuG9Mcy7Yx+XT+Q5c6h9k+32wiqnxKVpWvnQCV/LJSIEhNr62R3+Lc81+bV6224vbbCN42vVzo8//khkZGS+L4PBwK+//urs0IptwoQJzJs3z9lhOJVO+Fo+OZOwDv8WT+4sbHMw+IeBJR3iNjkxOs1ZRowYwc6dO3O/HnnkEXr16sWgQYOK9XqlFFartYKj1IqiE76WT/3OfpgD3bh8PIO4A3nG8nOGdc6vckpcmus4ePAgU6dOZc6cORgMthTy1ltv0alTJyIiInj5ZduV17GxsbRu3ZpHHnmE9u3bc/LkSSZPnkxYWBjh4eF89913Be4/PT2d++67j/DwcKKioli50lY7mjlzJiNHjmTw4ME0b96cf/7zn7mvWbp0Kd26daN9+/aMHj2a5OTkG76H5cuXExUVRXh4OPfffz8ZGbZPrs899xxt2rQhIiKCZ555BoAffviBsLAw2rVrR+/evcv2w3M2pZTLfnXo0EFpjrf2jePqk/Zb1cZ3Tl598MR8pb5CqT+inRdYNbZv376rd/ZTMV/FkJmZqTp06KC++eab3Md+//13NXHiRGW1WpXFYlFDhgxRq1evVseOHVMiojZu3KiUUmrevHmqf//+Kjs7W507d041aNBAnTlz5rpjTJs2TU2YMMH2VvfvVw0aNFBpaWnqyy+/VI0bN1aJiYkqLS1NNWzYUJ04cUJdvHhR9erVSyUnJyullHrjjTfUq6++et1+7733XvXDDz+otLQ0FRISog4cOKCUUuqee+5R77zzjoqLi1MtWrRQVqtVKaVUQkKCUkqpsLAwderUqXyPuYp8vxd2wFZVSE7VZ/jadXIaqB1ZGo+y2od1avUBBC5thOy0wl+sVWkvvfQSbdu2ZezYq0tZLF26lKVLlxIVFUX79u2JiYnh0KFDADRq1IiuXbsCsG7dOsaNG4fRaKR27dr06dOHLVuuv9R33bp13HPPPQC0atWKRo0acfDgQQD69euHv78/ZrOZNm3acPz4cf7880/27dtHjx49iIyMZNasWRw/frzQ93DgwAEaN25MixYtALj33ntZs2YNfn5+mM1mHnzwQRYsWICXlxcAPXr0YMKECXz66adYLJZy+Ck6j554pV2ndoQ3PnXcyUqzcOV0Bv4NzOBREwIjIWGHrXhbp5+zw6y+Wjmmw+21Vq1axfz589m+fXu+x5VSPP/88zz88MP5Ho+NjcXb2zvfdgX58MMP+fTTTwFYsmRJodsBeHhcnStiNBrJzs5GKcWAAQP45ptvivU+Ctu/m5sbmzdvZvny5Xz77bf873//Y8WKFUyfPp1NmzaxePFiIiMj2blzJzVr1izWsVyNPsPXriMG4ZYPm3P37xG2ZJ+jdl/b7fkVzglMc5qEhATuu+8+Zs+eja+vb77nBg0axBdffJE7bn769GkuXLhw3T569+7Nd999h8Vi4eLFi6xZs4bOnTvz6KOP5haD69WrR+/evfnqq68AW73gxIkTtGzZstDYunbtyvr16zl8+DAAqampuZ8ICtKqVStiY2Nzt58zZw59+vQhOTmZy5cvc8stt/Duu++yc+dOAI4cOUKXLl2YOnUqQUFBnDx5svg/OBejz/C1AuVcnplPnX4Q839wbjm0e93xQWlOM336dC5cuMDf/va3fI8///zzjBkzhv3799OtWzcAfHx8mDt3LkajMd+2I0aMYOPGjbRr1w4R4b///S916tS57liPPPIIkyZNIjw8HDc3N2bOnJnvzP5awcHBzJw5k3HjxuUWX1977bXcIZtrmc1mvvzyS0aPHk12djadOnVi0qRJxMfHc9ttt5Geno5SinfeeQeAyZMnc+jQIZRS9OvXj3bt2hX/B+diHLYASmnoBVCcLzPZQmaKBZ/a7pCVBPNqAFYYFQ/u/s4Or9rYv38/rVu3dnYYmosp6PfCVRZA0SqZo8sTmDPgLza/f9r2gMkXanYGZYULa5wbnKZpJaYTvlaooJZeWDIVsasTyU6zT5rJKdbqcXxNq3R0wtcK5RfiQa0wb7LTrBxfm2h7MLdwu9xpcWmaVjo64Ws3lLfVAgBB3cBohsTdkH79lRiaprkunfC1G7puvVujBwT3tD2p2yVrWqXisIQvIi1FZGeerysi8oSjjq+VToHr3dbW4/iaVhk5chHzA0qpSKVUJNABSAV+dNTxtdLLGdaJO5RqeyBnHP+cHsevTnx8fPLdnzlzJo899hhgu05/9uzZFXp83d647Jw18aofcEQpVXjDC81lNOkfSN0OvvjVt09+qdEBTP6QfASSY8En1JnhaS5g0qRJzg5BKwZnjeGPBYrX+EJzOpOX8WqyBzAY85zlL3NOUJpLeeWVV5g2bRoA0dHRPPvss3Tu3JkWLVqwdu1awNby4I477iAiIoIxY8bQpUsXciZW6vbGjuHwM3wRcQeGAc8X8vxDwEMADRs2dGBkWlGUUlyOzSCgsRnq9IdTP8K5P6DZg84OrVqRV1+tkP0qex/7wqSlpREZGZl7Pz4+nmHDhhW4bXZ2Nps3b2bJkiW8+uqrLFu2jI8++ojAwEB27drFnj17cvd16dIlXnvtNZYtW4a3tzdvvvkmb7/9NlOmTClw3+np6UyYMIHly5fTokULxo8fz8cff8z48eP58ccfiYmJQURITEwEYOrUqfz+++/Ur18/97Hqyhln+DcD25VS5wt6Uik1QynVUSnVMTg42MGhaYVRSvHThAN8f/teLp9MhzoDbE+cX26beatVeZ6envlWvZo6dWqh244cORKADh06EBsbC9jaHue0VQ4LCyMiIgJAtzd2IGeM4Y9DD+dUOiKCfyMPLuxJ4chvCbR/sBl4NYTUE5DwF9SIcnaI1UZRZ+KuIKfZWU4LYyi8LbFub+w4Dj3DFxEvYACwwJHH1cpHvvVuAeraz/LP/eG0mLTKo2fPnnz//fcA7Nu3j927dwO6vbEjOTThK6VSlVI1lVKXHXlcrXzU72Rb7zYxNp24g2lQu7/tCV241YrhkUce4eLFi0RERPDmm28SERGBv79/vvbGERERdO3alZiYmEL3k7e9cXh4OAaDgUmTJpGUlMTQoUOJiIigT58++dobh4eHExYWRu/evSt1e+Oy0u2RtRJZ98YJ9v1wkYjxten6sAcsqGVrtXB7gu1WqxBVoT2yxWIhKysLs9nMkSNH6NevHwcPHsTd3d3ZoVVauj2yVqFyhnWO/B6Pcg+yLXtoSYeL650bmObyUlNT6dmzJ+3atWPEiBF8/PHHOtk7mF7xSiuRnPVuM1Ps693W6Q8JO23j+HqdW+0GfH190Z/YnUsnfK1ExCDc/L9m+NX3wOhuALcBsH+aHsfXtEpAD+loJRbY2NOW7MHWOdPgAfHbIf2ScwPTNO2GdMLXSi0r1UJKvJu9XbLSZ/ma5uJ0wtdK5diKBGb3/4tN75+GuoNsD5773blBaZp2Qzrha6VSs4UXlgxF7KpEsgMH2h48uxRc+DJfrWyMRiORkZGEhYUxevRoUlNTHR7DwoUL2bdvX4Xse9WqVQwdOrRC9u0qdMLXSiXfere7QsBcB9LOwOW9zg5NqyA5vXT27NmDu7s706dPL9brclorlIcbJfzyPE5VpRO+Vmq5rRZ+T4C6OWf5elinOujVqxeHDx8mJSWF+++/n06dOhEVFcVPP/0E2BZHGT16NLfeeisDBw4kOTmZ++67j/DwcCIiIpg/fz5QeFvk0NDQ3BbLnTt35vDhw2zYsIGff/6ZyZMnExkZyZEjR4iOjuZf//oXffr04b333iu0bXJoaCgvv/wy7du3Jzw8/IYzecHWCXT48OG5M3937doFwOrVq4mMjCQyMpKoqCiSkpI4e/YsvXv3zv30k9MO2hXpyzK1UmsyIJCNb5/k5PorZNx/Mx7MtiX81k87O7Qq7dPtHSpkvxPbbyvWdtnZ2fz6668MHjyY119/nb59+/LFF1+QmJhI586d6d/f1nJj48aN7Nq1ixo1avDss8/i7++f2z8nISGhyLbIfn5+bN68mdmzZ/PEE0+waNEihg0bxtChQ7n99ttz40lMTGT16tWkp6fTvHnz69omP/HEEwAEBQWxfft2PvroI6ZNm8Znn31W6Ht8+eWXiYqKYuHChaxYsYLx48ezc+dOpk2bxocffkiPHj1ITk7GbDYzY8YMBg0axAsvvIDFYnHKUFdx6TN8rdTyrnd7bF8X24MX1kB2mnMD0ypETj/8jh070rBhQx544AGWLl3KG2+8QWRkJNHR0aSnp3PixAkABgwYQI0atk+By5Yt49FHH83dV2BgYJFtkceNG5d7u3HjxkLjGjNmDFB42+QcBbVsLsy6deu45557AOjbty9xcXFcvnyZHj168NRTT/H++++TmJiIm5sbnTp14ssvv+SVV15h9+7d+Pr6Fuvn6Qz6DF8rk6aDanB6UxKXjhkhoj0kbLcl/XqDnB1alVXcM/HyljOGn5dSivnz59OyZct8j2/atAlvb+9824nIda+9UVvkvNtf+9q8co5TVF+wglo2F6agfYkIzz33HEOGDGHJkiV07dqVZcuW0bt3b9asWcPixYu55557mDx5MuPHj7/h/p1Fn+FrZdKkfyBjFral57MNr16eqcfxq41BgwbxwQcf5CbIHTt2FLjdwIED+d///pd7PyEhoci2yN99913ubbdu3QBbe4akpKQCj1FY2+TS6N27N1999RVgu3onKCgIPz8/jhw5Qnh4OM8++ywdO3YkJiaG48ePU6tWLSZOnMgDDzzA9u3bS3VMR9AJXysTd28j/g3sXTJzr8df6ryANId66aWXyMrKIiIigrCwMF566aUCt3vxxRdJSEjIXVt25cqVRbZFzsjIoEuXLrz33nu5rY7Hjh3LW2+9RVRUFEeOHMl3jMLaJpfGK6+8wtatW4mIiOC5555j1qxZALz77ru578HT05Obb76ZVatW5RZx58+fz+OPP16qYzqCbo+slQulFJePJROwtR5kJ8NtJ8C7gbPDqjKqQnvkkggNDWXr1q0EBQU5OxSXptsjaw6nlOLn+w/w/eiDXDaMsj149jfnBqVp2nV0wtfKTETwa2AriB05PML24JlfnRiRVtnFxsbqs/sKoBO+Vi5yJ2FtamTrrnBuGVgynRuUpmn5OHoR8wARmSciMSKyX0S6OfL4WsXJXe/2hIW41EGQnQSXCr92WtM0x3P0Gf57wG9KqVZAO2C/g4+vVRCDSWjSPxCAw8fusj14Vg/raJorcVjCFxE/oDfwOYBSKlMpleio42sVL3e92+2tUEr0OL6muRhHnuE3AS4CX4rIDhH5TES8r91IRB4Ska0isvXixYsODE8rq9oR3vjUdScrzY0rSc0hcReknnZ2WFo58fHxKdf9xcbGEhYWVq771G7MkQnfDWgPfKyUigJSgOeu3UgpNUMp1VEp1TE4ONiB4WllJQbh5vebcc8f7fBvbZ9qry/P1DSX4ciEfwo4pZTaZL8/D9sfAK0KCWxiX++23s22B/SwTpW2c+dOunbtSkREBCNGjCAhIQGALVu2EBERQbdu3Zg8eXKRZ/Lp6em57ZOjoqJYuXIlAHv37qVz585ERkYSERHBoUOHSElJYciQIbRr146wsLDcFgxa0RzWPE0pdU5ETopIS6XUAaAfUCFL12RlK0xuhTdb0ipeVsBgMpOD8D73B1izwGBydkhVxsSP4itkv58+UqPErxk/fjwffPABffr0YcqUKbz66qu8++673HfffcyYMYPu3bvz3HPXfZC/zocffgjA7t27iYmJYeDAgRw8eJDp06fz+OOPc9ddd5GZmYnFYmHJkiXUq1ePxYsXA3D58uUSx11dOfoqnb8DX4nILiAS+E95HyApzcp/5l/h1+26Ra+zHFuRwJzhiWza+CJkXYGLG5wdklYBLl++TGJiYm6Dspx2xImJiSQlJdG9e3cA7rzzziL3lbcdcatWrWjUqBEHDx6kW7du/Oc//+HNN9/k+PHjeHp6Eh4ezrJly3j22WdZu3Yt/v7+FfcmqxiHtkdWSu0ECuzxUF4On83mdJyFBXFpGAQGRXlW5OG0AtRs7kV2upXYA13IjvbA7cxiqF26roXa9UpzJu5IpenPVdhr7rzzTrp06cLixYsZNGgQn332GX379mXbtm0sWbKE559/noEDB+YumqLdWJWbaRvVxJ17b/JGgHkb01i6U5/pO5pfA/t6txkmjh/tBacXOTskrQL4+/sTGBiYu6RfTjviwMBAfH19+fPPPwH49ttvi9xX3nbEBw8e5MSJE7Rs2ZKjR4/SpEkT/vGPfzBs2DB27drFmTNn8PLy4u677+aZZ55x6XbErqZKLoDSo7UHVgWzV6Xww4Y0DCL0b2d2dljVStNBgVzYk8LhA7fStOXjkHwUfJo4OyytDFJTUwkJCcm9/9RTTzFr1iwmTZpEamoqTZo04csvvwTg888/Z+LEiXh7exMdHV3ksMsjjzzCpEmTCA8Px83NjZkzZ+Lh4cF3333H3LlzMZlM1KlThylTprBlyxYmT56MwWDAZDLx8ccfV+j7rkqqdHvkNfvSmbPKtr7k2J5e9IvQSd9RUi9m8dUtuxCxcM+k/nj0eB1a/t3ZYVVala09cnJycu51+2+88QZnz57lvffec3JUVY9uj5xH7zZm7urtBcC361JZuTvdyRFVH17BJup19MVqMXLsUF89rFPNLF68mMjISMLCwli7di0vvviis0PSqKJDOnlFh5lRCr5em8rXa1MRsT2mVbymg2twenMSl863hgtvQ1YymMp3tqbmmsaMGZO7uLjmOqp8wge4KdyMVdnO8r9aY0v6fdrqpF/RmvQPpE6kDwExj0Fcpq1lcoPhzg5L06qtKj2kk1e/CDNjetiGd+auTmXNPj28U9HcvY0ENDJD/aG2B84sdm5AmlbNVZuED9C/nZk77El/zqpU1uqk7xj1h3Alsb4t4bvwRQKaVtVVq4QPMKCdmdHdbZOx5qxKZd3+DCdHVLUppfjpaTPffv4Tl88YIUFfM61pzlLtEj7AwEhPbu/miQJmr0xhvU76FUZE8Auxr3cbMwhO/eLkiLTSev3112nbti0RERFERkayadOmol/kADNnzuSxxx677vFXXnmFadOmFfianLYPFcVVWz9Xy4QPtpYLo+xJf9bKFDbE6KRfUZoOsq93GzMYdepnJ0ejlcbGjRtZtGgR27dvZ9euXSxbtowGDRpU6DEtFkuF7XvDhurZ36naJnyAwVGejOxqS/ozV+ikX1FCOvthDjCSGN+YuAOpkHLS2SFpJXT27FmCgoLw8LB9WgsKCqJevXoA/Pbbb7Rq1YqePXvyj3/8g6FDbUX6a8+ww8LCiI2NBWD48OF06NCBtm3bMmPGjNxtfHx8mDJlCl26dGHjxo3MnTs3tz3yww8/nPtH4Msvv6RFixb06dOH9evXFxr3vn37iI6OpkmTJrz//vv5jgOwatUqoqOjuf3222nVqhV33XVXbl+fJUuWFPi+UlJSuP/+++nUqRNRUVH89NNPN/zZuVLr52pxWeaN3NzeE6Xgx01pzFyRggh0a+nh7LCqFINJaDKgBvt+uMjhmEEEnf4ZWjzq7LAqr68rqPX3nYUX1AcOHMjUqVNp0aIF/fv3Z8yYMfTp04f09HQmTpzIihUraNasWbGvvf/iiy+oUaMGaWlpdOrUiVGjRlGzZk1SUlIICwtj6tSp7N+/nzfffJP169djMpl45JFH+OqrrxgwYAAvv/wy27Ztw9/fn5tuuomoqKgCjxMTE8PKlStJSkqiZcuW/O1vf8Nkyt+qe8eOHezdu5d69erRo0cP1q9fT8eOHXn44YdZs2YNjRs3Zty4cbnbv/766/Tt25cvvviCxMREOnfuTP/+/fH2vm4BP8C1Wj9X6zP8HLd08GR4F9uZ/pfLU/jzgD7TL2/N7MM6Rw4MRJ3Q4/iVjY+PD9u2bWPGjBkEBwczZswYZs6cSUxMDI0bN6Z58+aICHfffXex9vf+++/Trl07unbtysmTJzl06BAARqORUaNGAbB8+XK2bdtGp06diIyMZPny5Rw9epRNmzYRHR1NcHAw7u7uN/wjM2TIEDw8PAgKCqJWrVqcP3/+um06d+5MSEgIBoOByMhIYmNjiYmJoUmTJjRu3BggX8JfunQpb7zxBpGRkURHR5Oens6JEycKjcGVWj9X+zP8HEM6eIKChZvT+GJ5CgBd9Zl+uandzhuf2kYyEny4cugg/n2ugMnP2WFVTjc4E69IRqOR6OhooqOjCQ8PZ9asWURGRiJS8CcONzc3rFZr7v30dNtl0KtWrWLZsmVs3LgRLy+v3KQJYDabMRqNgO0Kr3vvvZf/9//+X779Lly4sNBjXitnCCon/uzs7GJtc6MeY0op5s+fT8uWLYsVgyu1ftZn+HkM6ejJbZ1tZ/pfrEjhz4P6TL+8iEEY/H5L7nnpVfz9j8HZ350dklYCBw4cyD0LB9vSho0aNaJVq1YcO3aMI0eOAPDNN9/kbhMaGprbunj79u0cO3YMsA1TBAYG4uXlRUxMTG4b5Wv169ePefPmceHCBQDi4+M5fvw4Xbp0YdWqVcTFxZGVlcUPP/xQ7u+3VatWHD16NLfmkHcsfdCgQXzwwQe5iXzHjh033JcrtX7WZ/jXGNrRdo3+T3nP9FvoM/3yUKOZJ2TeDDtXwqmfoeFoZ4ekFVNycjJ///vfSUxMxM3NjWbNmjFjxgzMZjMzZsxgyJAhBAUF0bNnT/bs2QPAqFGjmD17NpGRkXTq1IkWLVoAMHjwYKZPn05ERAQtW7aka9euBR6zTZs2vPbaawwcOBCr1YrJZOLDDz+ka9euvPLKK3Tr1o26devSvn37cr+ix9PTk48++ojBgwcTFBRE586dc5976aWXeOKJJ4iIiEApRWhoKIsWFd4c0JVaP1fp9shl8cuWNH7ekoYI3N/PWyf98nLlINk/RpCpQvAaHwMGfc5RHJWlPfKqVauYNm3aDRNgZZHT4lkpxaOPPkrz5s158sknnR1WPi7dHllEYkVkt4jsFBHnZPJiurWTJ8M62a7g+WK5Ht4pL7HbazFn+jL+XHYvXFzn7HA0rVCffvopkZGRtG3blsuXL/Pwww87O6Qyc8bp1U1KqUsVeYC1x4/TJSQEd3vxp7Ru7WQb3vl5ix7eKS81mnqSlenJ8cN9yD7yE261o50dklaOcoq6VcGTTz7pcmf0ZVXiM3wR8RaRsmXSCvTXuXP0nzOHrp99Rsylsv9d0Wf65cuvgQfBLa1kZXlzfOVZ3UxN0xyoyIQvIgYRuVNEFovIBSAGOCsie0XkLRFpXoLjKWCpiGwTkYcKOd5DIrJVRLZevHixBLu2ybJaqe/ry45z52j/ySfM2LbthpdYFcd1SV9fp18mzYbapuQf/qsDJNz4CgdN08pPcc7wVwJNgeeBOkqpBkqpWkAv4E/gDREp3mwL6KGUag/cDDwqIr2v3UApNUMp1VEp1TE4OLiYu72qY7167Jw0iXsiIkjLzubhRYsY9f33xKWmlnhfed3ayX7JprJfsqmTfqk1HVATESsnY7uTEVP5i3uaVlkUJ+H3V0r9Wym1SymVO4tCKRWvlJqvlBoFFKvhg1LqjP32AvAj0PnGrygdPw8PZo8YwVcjR+Ln4cGPMTFETJ/O8qNHy7TfoR3zJP3lKWzUSb9UvIJN1IvIxmpx59iyc84OR9OqjSITvlIqK+/9gsbwr92mIPbX+eZ8DwwE9pQs3JK5MzycvyZNokeDBpxJSmLAnDn8848/yCzDNbtDO3oyvPPVNgy64VrpNB1qm7J+8VgAXDl04401lyAiuS0CALKzswkODs5tKlZcoaGhXLLX1/K2KZ48eTJt27Zl8uTJTJ8+ndmzZ5dovzkN0Yp6vLB2ynmtWrWqxO/rRm7UqtmRirxKR0QMwFjgLqATkAF4iMhFYAkwQylVnP+xtYEf7VOi3YCvlVK/lTbw4goNCGDVhAn8Z+1apq5ezVsbNrD82DG+HjmSlkFBpdrnkI6eILDQ3nBNAT1a6at3SqLJwGDq8DoB6f+DUwHQ5p/ODkkrgre3N3v27CEtLQ1PT0/++OMP6tevX6Z95m1T/Mknn3Dx4sV8rQ4qK4vFktsiwpU4bAxfKXVUKdXO/tVWKfV6mSIvATeDgSl9+rD2vvtoHBDA9rNnaT9jBp+WoaA7pIMnI+wN12at0IuolJS7j5GAjtG2Oyd/dGosWvHdfPPNuZ0cv/nmm3xNxeLj4xk+fDgRERF07dqVXbt2ARAXF8fAgQOJiori4Ycfzvd/Lufse9iwYaSkpNClSxe+++67fGfER44cYfDgwXTo0IFevXoRExMDwLFjx+jWrRudOnXipZdeKtX7mTBhAvPmzbsuHoArV64wYsQI2rRpw6RJk3L7Ai1dupRu3brRvn17Ro8eTXJyMmD75DJ16lR69ux5w3YPO3fupGvXrkRERDBixAgSEhIAW0O5Nm3aEBERwdixYwFYvXo1kZGRREZGEhUVRVJSUqneZ47iXIffv6AhG6VUPDAfmC8iputf5nq6NWjAzkmTeHTJEubu2sVDixbx6+HDfHrrrdT08irx/m7p4IkILPgzjVkrU7Aq6NWm8p+dOEy9wWA0c+XoCfxSz4BXPWdHVGnM6LCt0Od6vdCQ1iNtFzzsX3CRta8X3snxoW0dSnTcsWPHMnXqVIYOHcquXbu4//77Wbt2LQAvv/wyUVFRLFy4kBUrVjB+/Hh27tzJq6++Ss+ePZkyZQqLFy/O1/8+x88//4yPjw87d+4EbEMguTE+9BDTp0+nefPmbNq0iUceeYQVK1bw+OOP87e//Y3x48fntiAuSFpaGpGRkbn34+PjGTZsWJHvdfPmzezbt49GjRoxePBgFixYQHR0NK+99hrLli3D29ubN998k7fffju3wZnZbGbduhtPKBw/fjwffPABffr0YcqUKbz66qu8++67vPHGGxw7dgwPDw8SExMBmDZtGh9++CE9evQgOTkZs9lcZNw3UmTCz0n2IvIu8KQq4JS4OGP4rsLPw4M5I0Zwc7Nm/G3xYn6MiWHT6dPMHj6cfk2alHh/N7e3Jf35G9OYvSoFhaJ3m7L9o1QXyujFonlfcfZoI8a0/RX/3g84OyStCBEREcTGxvLNN99wyy235Htu3bp1zJ8/H4C+ffsSFxfH5cuXWbNmDQsWLABs7YoDAwOLfbzk5GQ2bNjA6NFX+y5lZNg+Ta9fvz73ePfccw/PPvtsgfvw9PTM/UMCtjH84rRs6dy5M03sOWHcuHGsW7cOs9nMvn376NGjBwCZmZl069Yt9zVFrQdw+fJlEhMT6dOnDwD33ntv7nuLiIjgrrvuYvjw4QwfPhyAHj168NRTT3HXXXcxcuRIQkJCioz7Rkoy0zYZ+FlExiqlUkRkIPCyUqpHmSJwkjvDw+kWEsLdP/7IhpMnGTBnDs90785rffuWeIbu4ChPBJi3MY05q1JRCvq01Um/KCKCT4g/HIUjv52j/XUX6WqFKe6ZeeuRwbln++Vl2LBhPPPMM7kdK3MUNDya08a4uO2Mr2W1WgkICMiXsAvaf2nlbeGslCIzM7PQfYsISikGDBiQrytoXoUtglIcixcvZs2aNfz888/8+9//Zu/evTz33HMMGTKEJUuW0LVrV5YtW0arVq1KfYxiz7RVSr0IfAOsEpF1wNPAc6U+sgtoHBjI6gkTeKVPH0SEtzZsoNvnn5dqhu6gKE9Gd7e1Ypi7OpWVe9LLO9wqqelw2y/v4S0tUGkXnByNVhz3338/U6ZMITw8PN/jedsAr1q1iqCgIPz8/PI9/uuvv+aOWReHn58fjRs3zh0TV0rx119/Abaz32+//RYgd/8lFRoayrZttuGxn376iaysq4MVmzdv5tixY1itVr777jt69uxJ165dWb9+PYcPHwYgNTWVgwcPFvt4/v7+BAYG5g6DzZkzhz59+mC1Wjl58iQ33XQT//3vf0lMTCQ5OZkjR44QHh7Os88+S8eOHXPrF6VV7IQvIv2AiUAKEAz8Qym1tkxHdwFuBgMvR0ez9r77CM0p6JZyhu7ASE/G9LDVAr5ek8qK3TrpFyWkez3M3ikkxjchfv1SZ4ejFUNISAiPP/74dY+/8sorbN26lYiICJ577jlmzZoF2Mb216xZQ/v27Vm6dCkNGzYs0fG++uorPv/8c9q1a0fbtm1z15B97733+PDDD+nUqVOplwKcOHEiq1evpnPnzmzatCnfGXq3bt147rnnCAsLo3HjxowYMYLg4GBmzpzJuHHjcovTJU3Cs2bNYvLkyURERLBz506mTJmCxWLh7rvvzl339sknnyQgIIB3332XsLAw2rVrh6enJzfffHOp3meOYrdHFpEVwBSl1DoRCQfmAE8ppVaUKYIbcHR75Mvp6Tz266/MtV9dMKJVq1IVdFfsTuebtbaZvWN6eNG/nR7euZF1z//OvqVBtIteTZf/e8rZ4bikytIeWXOsCmuPrJTqq5RaZ/9+N7b2CK+VIVaX4282M6ccZuj2DTdzV2/bH4nv1qeydGdaRYRbZTQbYRsaOLytJSqtQhupalq1VpzmaQVWRZRSZ4F+N9qmsrozPJydDz9M9zLM0I0OM3NPH1vS/2FDGr9u10m/MLU71sUnIIGMdD8ub63wuXiaVm0V5wx/hYj8XUTyDbyJiDvQTURmAfdWSHROVFhB90AJCrq925q59yZvBNu1+ou36qRfEDEIg/51jvF/G0BA9tfODsdlufLqdJrjleb3oTgJ/xBgwdYW4YyI7BORo/bHxwHvKKVmlvjIlUCBBd0SztDt2dqDCX1tSX/hZtuyifo/7vVq9hiEm3sWnF8GmcW/iqO6MJvNxMXF6d8dDbAl+7i4uBJPxCqyaCsie5RSYSKyHVt3y2AgTSmVWNpgi8uZa9pe60pGRu4MXSh5QffPgxl8sTwFpeCWDmaGd/Ys8zXEVc7yfmSfXkdm2y/w6nCXs6NxKVlZWZw6dYr0dH3ll2ZjNpsJCQnBZMrf6OBGRdviTLz6XUQ2Ymt+Nh74C9hb1mArm8Jm6M4ZMYK+jRsX+fquLTwwCny2LIUl29KxWGBUN53084q9MJGVH0+hUfhh+l4/+75aM5lMNC7G75mm3Uhx2iM/ja1TpgVoDLwE7LaveFWsPvhVybUF3f6zZ/NsMQu6nZp78NBAH4wG+H1nOt+vT9Uf0fMI7NSbrEwfju9qTvZlfbWOppW3Yl2WqZQ6iq2J2ktKqeFKqeZAF+CdCo3ORV1b0P3vhg10L2ZBt0NTdx62J/1luzL4Zm0qVp30AfBvVo/gBidt693+vMrZ4WhalVOS6/APXnM/WSn1Z/mHVDnkLeg2Dghgm72g+9n27UWetUc1ceeRwT64GWDlngy+Wq2Tfo5m/Wy/kkf+KNuSlJqmXa/YCV8rWHd7y+W7IyJIzcpi4i+/cPsPPxS5hm5EqDuP3eKLyQhr9mUwc0UKVqtO+k1HdUPEwomY5mRc1Msfalp5KnXCF5G6IqKbv3O1oJszQ3fB/v20mz6dFceO3fB1bRua+PsQX9zdYOOBTD5fnoKlmid9r3rB1GsWa1vvdkGlb9WkaS6lLGf4c4AYEXH+Qo0uImcN3e4NGnC6mAXd1iEmHh/qi4cJNh/K5NM/ksm2VO+k37S/revohZ3nnRyJplUtxW6eVuCLbdcUtlFKFfsyTfsC6FuB00qpG64S7ErX4ZdEttXK62vWMHXNGqxK0aFuXb4qYg3dI+eyeW9REmmZinahJh4e5IPJWD0v2cxMTCB5bndq1DgAw0+CV9nWTdW06qRcmqcVRNmU9Jr8x4H9ZTluUZIzzzv1csdrZ+gWp6DbtI4bTw/zxctD+Cs2iw+XJJOZXT3P9N0DAqnRrg2g4ETha4NqmlYyZUr4InJfCbcPAYYAn5XluDeSknmRBfvHsTL2BTItZVvwt6y6N2jAzocf5q7w8HwF3fi0gnvqNKrlxjO3+eLrKew9mcX7i5NIz6qeSZ9GtkWck3boZmqaVl7KepXOqyXc/l3gn4C1sA1E5CER2SoiWy9evFjigOLTDmJRGRxJ+J35+8dxLnlnifdRnvzNZuaOHJmvoBvx8cesLKSg2yDIjWdu88PfSzhwOpv3fkkiNaPQH1eVpeoOYdG8GXwz7XUS95ZtlR9N02yK0x55VyFfu7G1WygWERkKXFBKbbvRdkqpGUqpjkqpjsHBJV+Ls4F/D0a0+pogr9YkZ55l0cGJbDszHavKLvG+ylPeGbqnk5LoN3s2zy1bVmBBt14NI5OH+1HDx8Dhc9m8/XMSKenVK+mLyQufOrbi7eF5250cjaZVDcU5w8/poXNrAV9xN3jdtXoAw0QkFvgW6Csic0sUbTEFmBsxrMWXtKt9LwrF9nOf8svBiVzJOF0Rhyu2a2fovrl+Pd0//5yDcdf/GGsHGJk83JcgPwPHL1qY9lMSV1KrV9JvNtRWrD28zg9lrV7vXdMqQnES/iLARyl1/JqvWGBVcQ+klHpeKRWilAoFxgIrlFJ3lybo4jAaTHSu/w+GNP8Yb1MtLqTsYsH+cRyKW1JRhyyWggq6UZ98UmBBN8jPyD+H+1EnwMCpOAtvLbxCQnL1SXz1BvTC0zueK/F1ubih8l2tpWmupjjN0x7IWdqwgOfuLP+Qylc9306MbP0tjQP6kWVNYdXxl1hxrPIUdAN9DEwe7kf9GkbOJVp5a+EVLl0p/spblZnB5EbTrrZr8Q//dLCIrTVNK4pTWisopVYVdQ1+eTK7+dOv8Zv0avgSbgYzRxJ+Y/7+O12moDt3xAh83d1zC7rXztD18zLwzHBfGgUbuXjFyn9/TOJcYvVI+s1HtALgyKY6WDOznByNplVu1aaXjojQKmh4noLuGXtB9xOnF3Tviojgr0mT6BYSUugMXR+zgaeG+dKsjhsJKVbe+vEKp+KcG7cjBHVpj3/NM2RlmEnYstrZ4WhapVaihC8iffPeVkZXC7oT7AXdGS5T0F1z3335Wi5fu4aul4eBJ271pXWIG1fSFNMWJhF7oWonfTEYGPDkIe7520Bqyixnh6NplVqJWiuIyHalVPuc2wqMC6j41gpnkrawKnYKKVkXMBm86dHgOZrXvKXCjldcG06e5K4FC4hNTMTLZOK9wYN5ICoqd3WsrGzFJ0uT+Ss2C7MJ/j7Elxb1TEXstRJLPgo/NwWjF4w8ByZfZ0ekaS6rIlorVIkmL7aC7jeEBvStFAXdnJbLJjdh0iAfOjVzJz0L3luUxJ4TmU6NuUL5NIHgXmRnZJO09SdnR6NplVa1GcMvjNktgP6N/0uvhi/mK+ieT/7LqXEVVNDN23LZzSg82N+bnq09yMyG/y1JZtuRqpv0z2U+wtzpv7Hq7Sr8SUbTKli1T/iQU9Adka+g+8vBB12+oGswCOOjvegf4YHFCp8sTWZDTIZT460oNXoMwmJx5+zRZlw5dMTZ4WhapaQTfh7Xz9CdwaKDD7lMQfflAtbQFRHu6OHF0I5mlIIvV6SwYne6U+OtCO4BgTRuZ/t0c/i7zU6ORtMqp5Im/GT7rXMHuSvQtTN0z6f8xYL94zgc7/wZuq9ER7NmwgQa+fvna7kMcFtnL0Z3t/We+WZtKou3pjm1RXRFaDGsHgAHV/vqVguaVgolSvhKqd55b6uya2forox1jYJuj4YN+WvSJO4soKA7MNKTe6K9EGDh5jTmbaxaSb/eoN54+cZxJb4u59f86exwNK3S0UM6N+DKM3S/GjmSOQUUdHu3MTNxgDdGAyzdmc6cValVZnF0g8mN5j1sLbMPLtDj+JpWUjrhF8GVZ+jeXUhBt10TNx692Qd3N1i7P4MZf6RUmXVyW4yJBCDxeBYqK/nGG2ualk+xJ16JyDLgaaWUw65XdLU1bS3WLLad/Zi/zs8GFLW92xEd+m/8PJy75mq21cpra9bw7zxr6H49ahRk+PG/JcmkZSraNHDjkcG+eJgq/xSKhLkjCJCFSLcvockEZ4ejaS6lvCZe/RN4R0S+FJG65RNa5VIZCrp5Wy6vObebp4f54Osp7DuZzds/X6kSC6kEdhuKCHDkc2eHommVSrETvlJqu1KqL7b++L+JyMsi4llxobmua2forox9iZXHXnSJgu61M3SfXvUjD9/sTg0fA0fPW/jvwiQSUyp50m94B7h5k3jgBClH9zs7Gk2rNEraPE2AA8DHwN+BQyJyT0UE5uquztC1FXQPJ/zqUjN0cwq68/fvp9/Xn9C7YyJ1AgycibfwxoIrnK/M7ZVNvuyMeYPvv1zAns/18oeaVlzFTvgisg44DbwD1AcmANFAZxGZURHBubqrBd2vXG6G7t0REezMU9C99YdZZNTcQaNaRuKSrLz54xVOXKy8nTbr9rENUR5cWxtrZtVtKaFp5akkRdswYK8q4AUisl8p1bq8g3O1ou2NVJaCbqc6IQwLGs7x84LZBI/d4kvL+pWvP42yWvnhlkUkXqzPwH9dInTUIGeHpGkuoUxFW/swDkqpPQUle7shZYivSqgMBd1G/v5sOXeKNw98So0aKaRnwbu/JLG9EjZdE4OBVgNsy0HGLLx+EXhN065XnCGdlSLydxFpmPdBEXEXkb4iMgsocuatiJhFZLOI/CUie0Xk1dIG7cpcuaCbM0M3OSuDtw58Sbr5JNlWmL40mTV7K1//neZ39sFgyOLk/mYkHz1W9As0rZorTsIfDFiAb0TkjIjsE5GjwCFgHPCOUmpmMfaTAfRVSrUDIoHBItK1dGG7tmtbLrtSQTdnhq6Pu4m5JxdyKGsHSsGc1aksqmT9dzzr1qFx5GGUMhIzZ4Ozw9E0l1dkwldKpSulPlJK9QAaAf2A9kqpRkqpiUqpncU5kLLJmRppsn9VnuxSQldbLuct6E5k29kZLlHQzZmhuzpxHeuSVgCKnzan8fWaytWKofWYRhjd0rFc2gNWvci5pt1IiZY4vO7FIuvtfwiKu70R2AY0Az5USj1bwDYPAQ8BNGzYsMPx48dLHZ+rqAwF3YamJvT1H4QBI+2bmHiwvw8mN9eflausVjLnd8Ijazv0WgANRjg7JE1zqopY4jBHvZJsrJSyKKUigRBsl3OGFbDNDKVUR6VUx+Dg4DKG5xoKL+j+6tS48hZ0leclliQuJFNlsP1oFu/8klQpZuWKwYBHuH0qyKHpzg1G01xcca7S+UBEHhKRbiJy7erRpfp4oJRKBFZhqw9UG9cXdF9kZexLLlPQ7duqJr8kzCfFksyhs9n8Z8Fl4pMqwQStxuOxKG+OrLaSdPiQs6PRNJdVnDP83UAE8AYQKyLHRORnEXkduPYPQKFEJFhEAuzfewL9gZiSh1y5XVfQjV/iUgXd94f1ZnnKQhKy47iQqHjl+wROxbn4BC2PGmzc8gHLF73Bvpl6NSxNK0xxirYzlFKPKaX6KKVqAr2A6cAV4PcSHKsutks8dwFbgD+UUotKE3Rll6+g69nK5Qq6Gx++h7NeGzmbeZq0DANTf4hnzwnXXiu3+QjbvL8Dq+qQnZrq5Gg0zTWVqWhb0SrTTNvSsliz2Hr2Y3a5YEF36so1bNjlRWOPZlixcmtXYXj7mk6NqzDKamXBsIXEnW1E9KOnaHH/bc4OSdOcoiKLtloZGQ0mutT/B7c0/wgvU7BLzdCd2i+al0fW4bhlHwYMLP5TmPrLEawuuJ6sGAy0vc3267znR4te81bTCqATvouo79uZUa2/JdT/JpdaQ7dXo4Z8P7EjGT6HUEpx8mQgE2bu4WKK6w2bNBs3AA/Py1w604gL67Y4OxxNczk64bsQs1sA/Zu8lVvQzVlD19kF3QCzmdnju9C2dTwWlY1HeggTvzjM0kOu1c7AzcebVtFnAdg7V1+to2nX0gnfxRRc0HWNlstP9m3OhAFuZJNBsDGE6Usy+eevq8m0uM6lm23u60ZgzaPUqfELpJ1zdjia5lJ0wndRAeZQhrWcSUTte1Eotp+bwaKDD5GUccapcfVuUYPXxwVhdM+gpimYU4cb0+/z+RyMc42Olb5Nm3D7C9/QJuJ7OPyJs8PRNJeiE74Ly1vQzZmhO3//WKcXdOsFmph2d21q1bDgbfShSWZvhnz+K59v3+4Szdek1d9t3xyaDhbXvpxU0xxJJ/xKoL5vZ9sM3TwFXWe3XPYxG3hldBBRTYy4G9zp7T2Yt/84zugffiA+Lc1pcQFQK5oUQ282/zGKI98494+jprkSnfAriasF3RdcpuWyySj8bZAfQzuaMYiB7r59OHOyFu0+ns7KY04s6IpwOvUpdm6+jx1fi75EU9PsdMKvRGwF3ZEuVdAVEW7r7MUD/bwxGqCtZwRtDdEMnvMtzy9b5rSCbtNxA/H0jif+fANO/77GKTFomqvRCb8Syi3o1hrvMgXdri09ePo2X7zNQgP3RtwaMJoPN+6mxxdfcMgJBV2jpydhN18CYPfcsw4/vqa5Ip3wKymjwUSXkMfzzdC1FXSd13K5eV0TL4zyo26gkUC3GoyoMYZTFyHqk0/4YscOhxd0Wz/QD6NbOidjWpDw1x6HHlvTXJFO+JXc9TN0ndtyOdjfyPOj/AhraMJdzAwJGEGIsQUP/Pwzd8yb59CCrrlWLVr2OArA7s93Ouy4muaqdMKvAq6doevslsue7sLfb/FhQDszgoFevn3p7RfN/H37aTd9OqtiYx0WS/iDnQArh/5sQvrZUw47rqa5Ip3wqwhXa7lsMAh39PBiwk3euBmghUc4Y2rdwcWkDPrOmsXzy5aR5YCCrn+bVnQesoohtz+C+dwHFX48TXNluj1yFVRQy+WbQl/D16NEK1KWm8Nns/jot2SS0hRGUwbzLiwgLvsSHevV4+uRI2les4JbLsdtgd87g5svDD8B7gEVezxNcyLdHrmaKajlsjMLus3qmnjxdj8aBhuxZHkwOmgsnQLC2XrmjGMKujU7Qe1+kJ1Exs4ZFXccTXNx+gy/ikvPTmTt8deIvbwSgGY1bqFHg3/ibiz26pTlJjNbMXtlCpsOZdrue8cyJ3YRCsXtbdowY+hQAj09K+bYR5ez4tndXDwXxrhfu+Lm41Mhx9E0Z9Nn+NVYTkG3Z8MXMIqHUwu67m7CA/29ub2bJyLgnhLKMy0epIa7D/P27SNi+nRWV1BB1xR6E2kZDUhLDeTAzN8q5Bia5uoclvBFpIGIrBSR/SKyV0Qed9SxqzsRoXXQSEa2dn5BV0QYFOXJE0N98TELCQlm7q9/H33qteHUlSvcVEEFXTEYiLzbC4C/Fnhjzcws1/1rWmXgyDP8bOBppVRroCvwqIi0ceDxq70Ac+M8M3QtbD/7idNm6LZpYOKF2/1oGGQkMRnaqH48024YIsIb69fTvQJm6IaOGkhA8GmSL9fi4CzdVE2rfhyW8JVSZ5VS2+3fJwH7Aeeu1F0N5c7Qbfax0wu6QX5Gnh3pR/dW7mRlQ+KZRrzZ4SFC/QMrpKArRiPt7xIAdnzrrs/ytWrHKUVbEQkF1gBhSqkr1zz3EPAQQMOGDTscP37c4fFVFwUXdJ/F3ejYgqZSirX7MvhmbSrZVmgQZOAA6/h6/zaAci3oWrOy+WHor1y+VI/ek07SauLwMu9T01yJSxVtRcQHmA88cW2yB1BKzVBKdVRKdQwODnZ0eNVKwQXdcQ4v6IoIvdua+ecIP2r4GDh5yUpwUg/e7TMWX3f33IJueczQNZjcaH8nGIyZpB5YB9assr8BTaskHHqGLyImYBHwu1Lq7aK215dlOk5i+jFWHHuBuLQDCEai6j5IVJ37MYibQ+NITrfyxbIUdp+wJeJubeDTwwv58/RJBHi2Rw+m3nQTJqOx1MewZmWT9n1PvGUTdPkCmt5XTtFrmvPd6AzfYQlfRASYBcQrpZ4ozmt0wncsizWTrWc+YteFOQBOm6FrVYpft6fz0+Y0lIKmdYwk++zm//25AqtS5TND99hc2HgP+DSBoTFgMJXfG9A0J3KVIZ0ewD1AXxHZaf+6xYHH14pgNLjTJeQJbmnm3Bm6BhGGdPDk6WG+BHgLR85ZSDnVlq9ufoCG/v65Bd0vy1LQbTQW5d2Sw1uac/SrH8v3DWiai9IzbbUCpWcnsOb4axy/vApwXkE3Kc3K58tS2HvSNsTTq60bv11cxjd7dwMwuk0bPillQff4/F/4/T/18PKNY+yiHrj5eJdr7JrmDK5yhq9VIma3QAY0mZavoLtg/52cT97l0Dh8PQ38Y6gPI7t6YjTA2r3ZtLb245NBt+Pr7s4PZSjoNhx+CzXrHic1qSZ7P15U/sFrmovRCV8rVN4ZujU9W5KUeZpfDj7IdgfP0DWIcHN7T/45wo8gPwMnLlnYtasuswY8TNf6IZy6cqVULZfFaKTzw/4A7FxYiwwnLMWoaY6kE75WpABzY25rOSt3hu42J83QbVLbjZdG+9G5uTsZ2bBkM9wTcgcv9rip1DN0Q4bcRN0mh8lI92PX+7rHjla16YSvFcvVGbof4WUKclpB18vDwMQBPjzQzxuzCXYczSL9dDhfD8lf0C3uDF0xGOj8WCMAdv/eiNRTpyv6LWia0+iEr5VIfb8ujGr9LY38o69ZQzfZoXF0benBlDv8aVrHjcQUxbJNnrza7n7Gto0gJSsrdw3dhGKsoVu7T1catT1AdpYnuz903iLwmlbR9FU6WqkopYiJ+5GNJ6dhURn4utfnptDXqO0T4dA4LFbFbzvS+WVLGhYr1PY3ULfRWZ5fu5CkzExC/PyYO2IEfUJDb7ifxL37Of75G4RFfYdx6GYIdOz70LTyoq/S0cpd4QXdT7Gqil+rNofRYLtm//lRftQNNHL+spW/dtfmna4P061+w9yWy/9avvyGBd2Atq1pd2cARmMG7HgaXPhESNNKS5/ha2Vmm6H7MbsuzAagtnckN4X+2+EzdLOyFT9tTmPpznQUUDfQQKZ/DG9tXVq8GboZcfBzM9KvKFJafkfNnoMcGr+mlQd9hq9VKNsM3bwtl3faC7qOverF5Cbc3t2Lf47wpZa/gbMJVuKPt+D/Ok8k1L9G0QVdj5pc8n2Tbz//keX/ztDtk7UqRyd8rdzU9+vMqNbfEup/k72g+wIrY6c4vKDbrK6JKXf4MzDSDMDeox6MDbqbO1v0LLKgGxg9HrN3ComX6rPnw4UOjVvTKppO+Fq5ur7l8mKnzND1MAmju3vx3Ejb2P6lKwqvhCheDLuPwDxr6F47Q9doNtP9Udsfim3f1yH15CmHxq1pFUknfK3cXS3ofu3UGbpgn6x1hx+3drK1Zjh33ofxte9jYJ0uhc7QbTi8P43aHiAr05s/X1vl0Hg1rSLpoq1WoVyl5TLA2XgLs1elcPic7Y+Ou9cVvjr1E5ctidcVdK8cOswPd1/Aku3B0DdSqTegl8Pj1bTS0EVbzWkKb7ns+DYGdWsYmTzCl/HR3nh7CJmpfowJupubavRmx5kL+Qq6fs2bEXWrbXnN9W/Ho7J1AVer/PQZvuYw6dmJrDn+7zwtl4fQo8E/Hd5yGWxtl3/YkMrGA7ZEbjWksTxhBcczj+a2XPZVihUTZxER+Ql1bhkLbZ9zeJyaVlIuseJVaeiEX/UUOEO38evU9g53SjyHz2bx1ZpUTsXZxvDPZZ1ifdJqvL2zbTN0PQ7ByoFg8IBbdoFfC6fEqWnFpYd0NJdR4AzdAw84fIZujmZ1Tbw42o9xvbzw8hDqmEIYWWMcDayRDJ79Hf/aZ8DaeAJYMzj33euoErRf1jRXo8/wNae5vqAbaS/o1nVKPMnpVn7enMaqvRkoBRnWDHambqFWQCxTd5xjz+ZR9Lw/ljaPjnJKfJpWHC5xhi8iX4jIBRHZ46hjaq7takH36gzdBTFjORL/u1Pi8TEbuLO3Ny/f4UebBm54GDzo4tOToIxb+dWrFgCb5tYi+egxp8SnaWXlyCGdmcBgBx5PqyRyZug28o8m05LMith/OWWGbm48Nd148lY/Hh/qQ+0Awdfoz7mm4/FrsoesTC9WPrdJD+1olZLDEr5Sag0Q76jjaZWL2S3gmjV07TN0U3Y7Laawhu68OjaA8dFeuLtns61rZzw8Ezl7pDm/T53rtLg0rbQcOoYvIqHAIqVUWHG2L/UYfoyU/DWay0i0erAiozFxygtB0d50lki3cxic+M+aaTEz7+hjxG3sgsfvjTEaM7gwJpURY3vRqr6H8wLTtGu4xBh+cYnIQyKyVUS2Xrx40dnhaE4QYMjgNvMBItzOoxC2ZdVjUUYLkqzuTovJ3ZjOnc2nce/YBwgM24DF4kGrjbG891M8r82P5+CZLKfFpmnFVTXP8LUq4/SVTaw6PoXUrEu4G33o2eBfNK3h3D71Wdu82PTZw3Tu/Ckr1Tjmpb8JQPO6btzSwUzbBiZE9KdMzTlcZuKVTvhaaaRnJ7Dm+GsuMUMXsA0ZpoA6aEJUFpPj/sV5eQwPg21op2GQkcFRZto3dcfozHEorVpyiSEdEfkG2Ai0FJFTIvKAo46tVW5mt0CXK+jiDRL1FtnZ7gzbZeXkhc/ZnLyeDJXGiUsWZvyRwgtfXWbZX+mkZ7ruXBetetETr7RKJTH9GCuOvUBc2gEEI+3rTiSyzv0YxOi4IHIuCmhpZfOz/2Pn8u4E1j7Bx8POseZ8HC3MreldoxuWLFtffU93oUdrd/qGmQn2d2CcWrXkMkM6JaUTvlYQp8/QzUn4rRSZCQksuGM9V+Lr0rzzPlaMqsd/NqzHqhT96nSgV2B3Tl2ybS5ARKiJ6DAP2jQwYdDj/FoF0Alfq5JOXfmT1cdfdnxBN0/CB4jb9hc/PZpEdpYnnccc4sqYbtzz44+cuHwZb5OJ/9frNrwzGrHlcCbZVttLg/0M9GrjQY9WHvh5udzFclolphO+VmXZCrr/5vjl1YCDCrrXJHyAYz/8xh9vBANWBv4rnoAhfZi0aBHf7d0LwOg2bfi/fkPYfUxYsy+DuCRb5jcaoF2oiZ6tbWf9usirlZVO+FqVppQi5tICNp76v6stl0Nfo7ZPRMUcsICED7DjjW/Z8kNz3EypjJjuQ0C7SGb/9ReP/foryZmZNPDzY+7IkfRs0JDdJ7JYtz+DXbFZWO278fcSurbwoFtLd+rXdKuY2LUqTyd8rVpISDvGyti8Bd0H7QXdck6ehSR8ZbWy8pGvsSSeoe+o/2G8eRX4NOFIfDx3LVjAptOnEeD5nj15JToak9FIYoqV9TEZbIjJ4MJla+6+Qmoa6dLCnc7N3Knhqwu9WvHphK9VGwUXdP9dvmvoFpLwASxpqci6WzFcXAE+TWHAOvCsQ5bFwqurV/OftWtRQOf69flq5Eia1agB2D6lHD2fzYaYTLYeySQ14+q+m9Zxo2NTd9o3daeGjx7v125MJ3yt2sk7Q9dk8KZnw3/RrEY5NWu9QcIHIOsKLO9L1vm9bNnyMh1enYiHfXH0NceP5xZ0fdzd+eDmm7m3Xbt8M3OzLIq9J7L482Amu49nkpl9ddeNaxmJauJOVBN36gToM3/tejrha9VShRV0i0r4AOkXWfnIXA791ZtaDY5x8+c35Sb9xPT06wq6nwwdSqCn5/W7yVLsjrWd9e85kZUv+dcOMNAu1J12oSaa1HbDzagLvppO+Fo1VmBBt6xr6BYn4QPJR4/x84MxJF+uRVC949zyeU/MtWrlxnVtQXfOiBH0CQ0tdH8ZWbYz/+1HM9l9IivfsI+nu9A6xI22DU20CTER5KfP/qsrnfC1au/6gm4ZZugWM+GDLekvengvV+LrEljrJEM+64xX/av1hBsVdG/EYlUcPpvNrtgsdh3P5FyiNd/ztfwNtA4x0aq+iRb13PS1/tWITviaRjnO0C1BwgdIOXGSxRN3kHipPn6B5xj8bhMCwlrnPp9lsTB19Wr+s24dVqXoVK8eX48alVvQLY5LVyzsPZnFnhNZHDidTdo1/Xvq1TDSvK4bzeu60ayuGzX1lT9Vlk74mpZHmWfoljDhA6SdPcuSiRuJO9uIsI7z6T51ANS+Kd82a48f5+4iCrrFYbEqjl+0sP9kFgfOZHHkXHa+sX+AAG+haR03mtR2o3FtNxoGueFh0jWAqkAnfE27xrUF3eY1htC9wbO4G72LfnEpEj5A1uUr7HrzU6JaP4vBTaDTR9D0QciT0K8t6N7Rti3ThwwpsKBbXNkWReyFbA6dtX0dOZedb/wfwCC2TwGNgo00CnajYbCRkJr6j0BlpBO+phWgoIJu38avU6uogm4pEz4AVgvsfBZi/o/0NH+2732LjlPuwD3AP19cc3bt4tElS/LN0O3dqFHJj1dQCEpxPsHKkfPZHD2fzbHz2ZyJt+TO+M0hQLC/gZCatuRfv4aRejWMBPsbdAsIF6YTvqbdwPUF3YeIrHNf4QXdsiT8HEdns+ylcxyN6YdfjbP0m1qH4G75/4+WtqBbGhlZipOXsjl+0ZJ7ezbBgsV6/bZuBqgdYKROoJG6gQZqBxip7W+kdoABLw9dHHY2nfA1rQgWayZbznzI7gtzAajjE0V0o38XXNAtj4QPJO7ex7JnDxJ/vgEi2YT1P0TH54dh8vfL3aaoGboVKduiOJtg4eQlC2fiLZyOt93GJxfwV8DOxywE+xsI9jMS5GcgyNd2W9PXQKCPAZOeK1DhdMLXtGIqVkG3nBI+QHZqKptfWcDeFS1Qyoi330W6/00RevsgxHD1bHnN8ePcvWABJ69cKVNBtzykZyrOJdqS//nLFs4nWjmfaOHCZct1xeG8BPDzEmr42JJ/DR8DAd5Xv/y9DQR4GTC76z8KZaETvqaVQJEF3XJM+DkubtzK2v+c4NKZRohYGPPkFPyiH4N6Q3KLuglpaUxavJjvy7GgW56UUlxOVVy4bOHiFSuXrli4dMVKXJLtKyHFSnHSjYcb+HkZ8PM04OsltltPwdfTgI+n4Gs24GMWvM2Ct9mAhxt60fg8dMLXtBJSSrH/0nz+PPX29QXdCkj4ANasbPZ/spCkfTvo2vM/tsf8O3Do7PM0vr0v7gGBBc7QLc+CbkXKtigup1pJSLYSn2y7TUyxkpCiSEyxciXVyuVU6w0/JRTEzQBeHrY/AF4eBrw8BC93wctD8HQXPD0Es8l262kSzO62+zm3HibBvQr90XCZhC8ig4H3ACPwmVLqjRttrxO+5mwJacdYEfsv4tMO5hZ0IxIfwk1UuSf8XNmpcPgT2PcGJ2Oa8Ov8/+FmSqNxZCwNegYQ0r8Tp9xN3LVgAZvtBd3HOnfmtb598fPwqJiYHEQpRVqm4kqa4kqqlSupiqR0K0mpVpLSFMnpiuR0a+5taoYq8R+Iggjg7gbu9j8AHm6Chwnc3ST3y+TG1VujYHITTEau3tofczOCm8F+a8y5zf+Y0WC7bzTaFsEpz+UuXSLhi4gROAgMAE4BW4BxSql9hb1GJ3zNFVxb0DVhIdSYSNPQrzCbKrB4aknn8vLN7J3rx/ljLfI8YSWw9kkCG8ZjuOVXFp5J54rVREB8C6KbNyfI+/ohHvcaWZj8bZkxO8lIxiX3Qg/r1SgNsZcP0s54YM0o+MobNx8LHsGZtogyhbTT5kL3aa6bgdFsK/ZmxJnIvlLwGgUGk8IzJD33fkqsJxSSonLeU7ZFSE80kXreTLbFQLZFsFiMZFvEdt8qWIMtWKxCtsVI9nk3LBlGLEqwZhvIthpyL0m1eiisfvY72eCWUPhVR5YAK8pkjztZMKQVnLSVESw1rha63S4ZrntPgm3kTvlYwMeKQRR33BJFaJ3gQo9fmBslfEcuq9MZOKyUOmoP6lvgNqDQhK9prsBocKdryJOE+HVj65mPuJi6l0OWmhw68o+KP3hD4F/gc8of381tyYwJI/FEOAnnG2HNVIxJXkBf+0U9X8xay4VsTy4UsJtuN00jvP23ABzcO4RVv71a6CHvf7w7bm62RP7TN59z/ky7Ardr3mYxXW9+GYD4S02YN+v7Qvc5bOwD1Kn/FwAbVjzNvh3jCtwusOYRRk8Yn3v/83fXY7EU/Kml1O9p6Y3f001539OPRbynGvb3tOVp9tzwPY25+p4+L957+vP8QkLr3Fbo8UvDkWf4twODlVIP2u/fA3RRSj12zXYPAQ/Z77YEDpTykEHApVK+tiLpuEpGx1UyOq6SqYpxNVJKFfjRwJFn+AV93rnur41SagYwo8wHE9la2McaZ9JxlYyOq2R0XCVT3eJy5LS4U0CDPPdDgDMOPL6maVq15siEvwVoLiKNRcQdGAv87MDja5qmVWsOG9JRSmWLyGPA79guy/xCKbW3Ag9Z5mGhCqLjKhkdV8nouEqmWsXl0hOvNE3TtPKjW9tpmqZVEzrha5qmVRPVIuGLyDMiokQkyNmxAIjIv0Vkl4jsFJGlIlKv6FdVPBF5S0Ri7LH9KCIBzo4JQERGi8heEbGKiFMvoRORwSJyQEQOi8hzzowlLxH5QkQuiMgeZ8eSl4g0EJGVIrLf/m/4uLNjAhARs4hsFpG/7HEVPmvLwUTEKCI7RGRRee+7yid8EWmArZ3DCWfHksdbSqkIpVQksAiY4uR4cvwBhCmlIrC1wXjeyfHk2AOMBNY4Mwh7e5APgZuBNsA4EWnjzJjymAkMdnYQBcgGnlZKtQa6Ao+6yM8sA+irlGoHRAKDRaSrc0PK9TiwvyJ2XOUTPvAO8E8K7cjheEqpK3nueuMisSmlliqlclpR/YltroTTKaX2K6VKO+O6POW2B1FKZQI57UGcTim1Boh3dhzXUkqdVUptt3+fhC2R1XduVKBsku13TfYvp/8/FJEQYAjwWUXsv0onfBEZBpxWSv3l7FiuJSKvi8hJ4C5c5ww/r/uBX50dhIupD5zMc/8ULpC8KgsRCQWigE1ODgXIHTrZCVwA/lBKuUJc72I7QS18WbEycGRrhQohIsuAOgU89QLwL2CgYyOyuVFcSqmflFIvAC+IyPPAY8DLrhCXfZsXsH0U/8oRMRU3LhdQrPYg2vVExAeYDzxxzSdcp1FKWYBIe63qRxEJU0o5rQYiIkOBC0qpbSISXRHHqPQJXynVv6DHRSQcaAz8ZV/YIATYLiKdlVLnnBVXAb4GFuOghF9UXCJyLzAU6KccOEmjBD8vZ9LtQUpBREzYkv1XSqkFzo7nWkqpRBFZha0G4syidw9gmIjcApgBPxGZq5S6u7wOUGWHdJRSu5VStZRSoUqpUGz/Wds7ItkXRUSa57k7DIhxVix52ReoeRYYppRKdXY8Lki3BykhsZ1tfQ7sV0q97ex4cohIcM5VaCLiCfTHyf8PlVLPK6VC7PlqLLCiPJM9VOGE7+LeEJE9IrIL25CTS1yqBvwP8AX+sF8yOt3ZAQGIyAgROQV0AxaLyO/OiMNe0M5pD7If+L6C24MUm4h8A2wEWorIKRF5wNkx2fUA7gH62n+ndtrPYJ2tLrDS/n9wC7Yx/HK/DNLV6NYKmqZp1YQ+w9c0TasmdMLXNE2rJnTC1zRNqyZ0wtc0TasmdMLXNE2rJnTC1zRNqyZ0wtc0TasmdMLXHEJELPZJN3vtPcifEpFS/f6JyIayPF+C4/zD3se93HoKiUiAiDxyzWPlEq99X/8nIvtE5AMR8RSR1fa2zoVt7y4ia0Sk0rdZ0YqmJ15pDiEiyUopH/v3tbD1EFqvlHJID6HSEJEY4Gal1LFy3GcosEgpFVZe+8yz7ybA10qprvb7jwJuSqn3injdy9jaPjusWZ7mHPoMX3M4pdQF4CHgMbG527760E4R+STnjFRExttX3/pLRObkvF5Eku233iKy2P78HhEZk/d5+/dP2Z/bIyJP2B8LtZ+5f2r/xLHU3k+FPK+bDjQBfhaRJ+2v2ZPn+WdE5JUb7auQ+N8Amtrf61vlGG9LYDXQSGyrJXlja739U55tVorIAPv3r4nI+/anFtq31ao6pZT+0l8V/gUkF/BYAtAH+AUw2R/7CBgPtAUOAEH2x2tcuy9gFPBpnsf9r3m+A7Ab2yIzPsBebP3YQ7G1f460b/c9cHcB8cXmOX4osCfPc88ArxS2r8Liv3Y/5Rzva8CD9u/dgXPXPN8bWIUtuS8GjPbHjcBFZ/+O6K+K/9Jn+JozCRCNLdFtEdtiFP2wnVn3BeYppS4BKKUKWs1pN9BfRN4UkV5KqcvXPN8T+FEplaJsqxstAHrZnzumlNpp/34btqRaWgXtqzjxX6us8YYDOYv9BAGJeZ9UtlWxBHgKGKts/eCx32aKiG8xYtQqMZ3wNaewjzdbsC3LN0spFWn/aqmUegVbYrphgUkpdZCrZ8X/T0SuXTmsoAVLcmTk+d5C0WtDZJP//4u5iH0VGX8ByhpvW2yfCgDSrokxZ42IukCGsi03mJcHkF6iaLVKRyd8zeFEJBiYjq0d83LgdnshFxGpISKN7I/fISI1cx4vYD/1gFSl1FxgGtD+mk3WAMNFxMs+pj0CWFvKsM8DtUSkpoh4YFsk5kYKiz8JWwvqgpQ6XvvZeZayr2OglEoAjCJitj9fF9sKZrcBKSIyKM9ra2Ib0skqzrG0yktfiqU5iqd9yMaE7Wx5DvC2UsoqIi8CS+2XaWYBjyql/hSR14HVImIBdgATrtlnOPCWiFjtr/tb3ieVUttFZCaw2f7QZ0qpHfYrZUpEKZUlIlOxrcd6jCIWy1BK7S0ofqVUnIistxeAf1VKTS6neMO4frWmpUBPsV32uQB4Wim1X0T+DbyJra8/wE3AkmIcQ6vk9GWZmlZFiUgU8JRS6p4itlsAPK+UOuCYyDRn0UM6mlZFKaV2YFvV6YYTr4CFOtlXD/oMX9M0rZrQZ/iapmnVhE74mqZp1YRO+JqmadWETviapmnVhE74mqZp1YRO+JqmadXE/wdfS2ZoIqz0XQAAAABJRU5ErkJggg==\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "def modified_huber_loss(y_true, y_pred):\n",
    "    z = y_pred * y_true\n",
    "    loss = -4 * z\n",
    "    loss[z >= -1] = (1 - z[z >= -1]) ** 2\n",
    "    loss[z >= 1.] = 0\n",
    "    return loss\n",
    "\n",
    "\n",
    "xmin, xmax = -4, 4\n",
    "xx = np.linspace(xmin, xmax, 100)\n",
    "lw = 2\n",
    "plt.plot([xmin, 0, 0, xmax], [1, 1, 0, 0], color='gold', lw=lw,\n",
    "         label=\"Zero-one loss\")\n",
    "plt.plot(xx, np.where(xx < 1, 1 - xx, 0), color='teal', lw=lw,\n",
    "         label=\"Hinge loss\")\n",
    "plt.plot(xx, -np.minimum(xx, 0), color='yellowgreen', lw=lw,\n",
    "         label=\"Perceptron loss\")\n",
    "plt.plot(xx, np.log2(1 + np.exp(-xx)), color='cornflowerblue', lw=lw,\n",
    "         label=\"Log loss\")\n",
    "plt.plot(xx, np.where(xx < 1, 1 - xx, 0) ** 2, color='orange', lw=lw,\n",
    "         label=\"Squared hinge loss\")\n",
    "plt.plot(xx, modified_huber_loss(xx, 1), color='darkorchid', lw=lw,\n",
    "         linestyle='--', label=\"Modified Huber loss\")\n",
    "plt.ylim((0, 8))\n",
    "plt.legend(loc=\"upper right\")\n",
    "plt.xlabel(r\"Decision function $f(x)$\")\n",
    "plt.ylabel(\"$L(y=1, f(x))$\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn.neighbors import NearestNeighbors\n",
    ">>> import numpy as np\n",
    ">>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])\n",
    ">>> nbrs = NearestNeighbors(n_neighbors=2, algorithm='ball_tree').fit(X)\n",
    ">>> distances, indices = nbrs.kneighbors(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[0.        , 1.        ],\n",
       "       [0.        , 1.        ],\n",
       "       [0.        , 1.41421356],\n",
       "       [0.        , 1.        ],\n",
       "       [0.        , 1.        ],\n",
       "       [0.        , 1.41421356]])"
      ]
     },
     "metadata": {},
     "execution_count": 21
    }
   ],
   "source": [
    "distances"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[0, 1],\n",
       "       [1, 0],\n",
       "       [2, 1],\n",
       "       [3, 4],\n",
       "       [4, 3],\n",
       "       [5, 4]])"
      ]
     },
     "metadata": {},
     "execution_count": 22
    }
   ],
   "source": [
    "indices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[0., 1., 1., 0., 0., 0.],\n",
       "       [1., 0., 1., 0., 0., 0.],\n",
       "       [1., 1., 0., 0., 0., 0.],\n",
       "       [0., 0., 0., 0., 1., 1.],\n",
       "       [0., 0., 0., 1., 0., 1.],\n",
       "       [0., 0., 0., 1., 1., 0.]])"
      ]
     },
     "metadata": {},
     "execution_count": 28
    }
   ],
   "source": [
    "nbrs.kneighbors_graph().toarray()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "NearestCentroid()"
      ]
     },
     "metadata": {},
     "execution_count": 29
    }
   ],
   "source": [
    ">>> from sklearn.neighbors import NearestCentroid\n",
    ">>> import numpy as np\n",
    ">>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])\n",
    ">>> y = np.array([1, 1, 1, 2, 2, 2])\n",
    ">>> clf = NearestCentroid()\n",
    ">>> clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([1])"
      ]
     },
     "metadata": {},
     "execution_count": 30
    }
   ],
   "source": [
    "clf.predict([[-0.8, -1]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "Pipeline(steps=[('nca', NeighborhoodComponentsAnalysis(random_state=42)),\n",
       "                ('knn', KNeighborsClassifier(n_neighbors=3))])"
      ]
     },
     "metadata": {},
     "execution_count": 31
    }
   ],
   "source": [
    ">>> from sklearn.neighbors import (NeighborhoodComponentsAnalysis,\n",
    "... KNeighborsClassifier)\n",
    ">>> from sklearn.datasets import load_iris\n",
    ">>> from sklearn.model_selection import train_test_split\n",
    ">>> from sklearn.pipeline import Pipeline\n",
    ">>> X, y = load_iris(return_X_y=True)\n",
    ">>> X_train, X_test, y_train, y_test = train_test_split(X, y,\n",
    "... stratify=y, test_size=0.7, random_state=42)\n",
    ">>> nca = NeighborhoodComponentsAnalysis(random_state=42)\n",
    ">>> knn = KNeighborsClassifier(n_neighbors=3)\n",
    ">>> nca_pipe = Pipeline([('nca', nca), ('knn', knn)])\n",
    ">>> nca_pipe.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.9619047619047619"
      ]
     },
     "metadata": {},
     "execution_count": 32
    }
   ],
   "source": [
    "nca_pipe.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "KNeighborsClassifier(n_neighbors=3)"
      ]
     },
     "metadata": {},
     "execution_count": 33
    }
   ],
   "source": [
    "knn.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.9333333333333333"
      ]
     },
     "metadata": {},
     "execution_count": 34
    }
   ],
   "source": [
    "knn.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn import tree\n",
    ">>> X = [[0, 0], [1, 1]]\n",
    ">>> Y = [0, 1]\n",
    ">>> clf = tree.DecisionTreeClassifier()\n",
    ">>> clf = clf.fit(X, Y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([1])"
      ]
     },
     "metadata": {},
     "execution_count": 36
    }
   ],
   "source": [
    "clf.predict([[2., 2.]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[0., 1.]])"
      ]
     },
     "metadata": {},
     "execution_count": 37
    }
   ],
   "source": [
    "clf.predict_proba([[2., 2.]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn.datasets import load_iris\n",
    ">>> from sklearn import tree\n",
    ">>> X, y = load_iris(return_X_y=True)\n",
    ">>> clf = tree.DecisionTreeClassifier()\n",
    ">>> clf = clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "[Text(167.4, 199.32, 'X[3] <= 0.8\\ngini = 0.667\\nsamples = 150\\nvalue = [50, 50, 50]'),\n",
       " Text(141.64615384615385, 163.07999999999998, 'gini = 0.0\\nsamples = 50\\nvalue = [50, 0, 0]'),\n",
       " Text(193.15384615384616, 163.07999999999998, 'X[3] <= 1.75\\ngini = 0.5\\nsamples = 100\\nvalue = [0, 50, 50]'),\n",
       " Text(103.01538461538462, 126.83999999999999, 'X[2] <= 4.95\\ngini = 0.168\\nsamples = 54\\nvalue = [0, 49, 5]'),\n",
       " Text(51.50769230769231, 90.6, 'X[3] <= 1.65\\ngini = 0.041\\nsamples = 48\\nvalue = [0, 47, 1]'),\n",
       " Text(25.753846153846155, 54.359999999999985, 'gini = 0.0\\nsamples = 47\\nvalue = [0, 47, 0]'),\n",
       " Text(77.26153846153846, 54.359999999999985, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 0, 1]'),\n",
       " Text(154.52307692307693, 90.6, 'X[3] <= 1.55\\ngini = 0.444\\nsamples = 6\\nvalue = [0, 2, 4]'),\n",
       " Text(128.76923076923077, 54.359999999999985, 'gini = 0.0\\nsamples = 3\\nvalue = [0, 0, 3]'),\n",
       " Text(180.27692307692308, 54.359999999999985, 'X[0] <= 6.95\\ngini = 0.444\\nsamples = 3\\nvalue = [0, 2, 1]'),\n",
       " Text(154.52307692307693, 18.119999999999976, 'gini = 0.0\\nsamples = 2\\nvalue = [0, 2, 0]'),\n",
       " Text(206.03076923076924, 18.119999999999976, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 0, 1]'),\n",
       " Text(283.2923076923077, 126.83999999999999, 'X[2] <= 4.85\\ngini = 0.043\\nsamples = 46\\nvalue = [0, 1, 45]'),\n",
       " Text(257.53846153846155, 90.6, 'X[0] <= 5.95\\ngini = 0.444\\nsamples = 3\\nvalue = [0, 1, 2]'),\n",
       " Text(231.7846153846154, 54.359999999999985, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 1, 0]'),\n",
       " Text(283.2923076923077, 54.359999999999985, 'gini = 0.0\\nsamples = 2\\nvalue = [0, 0, 2]'),\n",
       " Text(309.04615384615386, 90.6, 'gini = 0.0\\nsamples = 43\\nvalue = [0, 0, 43]')]"
      ]
     },
     "metadata": {},
     "execution_count": 2
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"231.84pt\" version=\"1.1\" viewBox=\"0 0 349.2 231.84\" width=\"349.2pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n   <cc:Work>\n    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n    <dc:date>2021-06-08T12:11:13.644161</dc:date>\n    <dc:format>image/svg+xml</dc:format>\n    <dc:creator>\n     <cc:Agent>\n      <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\n     </cc:Agent>\n    </dc:creator>\n   </cc:Work>\n  </rdf:RDF>\n </metadata>\n <defs>\n  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 231.84 \nL 349.2 231.84 \nL 349.2 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 170.635867 193.978202 \nQ 178.15296 183.400387 186.317699 171.911224 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 172.507622 192.981482 \nL 170.635867 193.978202 \nL 170.961544 191.882767 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_1\">\n    <g id=\"patch_3\">\n     <path d=\"M 140.466893 216.021065 \nL 182.979261 216.021065 \nL 182.979261 197.018935 \nL 140.466893 197.018935 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- gini = 0.0 -->\n    <g transform=\"translate(150.133846 202.51867)scale(0.047418 -0.047418)\">\n     <defs>\n      <path d=\"M 45.40625 27.984375 \nQ 45.40625 37.75 41.375 43.109375 \nQ 37.359375 48.484375 30.078125 48.484375 \nQ 22.859375 48.484375 18.828125 43.109375 \nQ 14.796875 37.75 14.796875 27.984375 \nQ 14.796875 18.265625 18.828125 12.890625 \nQ 22.859375 7.515625 30.078125 7.515625 \nQ 37.359375 7.515625 41.375 12.890625 \nQ 45.40625 18.265625 45.40625 27.984375 \nz\nM 54.390625 6.78125 \nQ 54.390625 -7.171875 48.1875 -13.984375 \nQ 42 -20.796875 29.203125 -20.796875 \nQ 24.46875 -20.796875 20.265625 -20.09375 \nQ 16.0625 -19.390625 12.109375 -17.921875 \nL 12.109375 -9.1875 \nQ 16.0625 -11.328125 19.921875 -12.34375 \nQ 23.78125 -13.375 27.78125 -13.375 \nQ 36.625 -13.375 41.015625 -8.765625 \nQ 45.40625 -4.15625 45.40625 5.171875 \nL 45.40625 9.625 \nQ 42.625 4.78125 38.28125 2.390625 \nQ 33.9375 0 27.875 0 \nQ 17.828125 0 11.671875 7.65625 \nQ 5.515625 15.328125 5.515625 27.984375 \nQ 5.515625 40.671875 11.671875 48.328125 \nQ 17.828125 56 27.875 56 \nQ 33.9375 56 38.28125 53.609375 \nQ 42.625 51.21875 45.40625 46.390625 \nL 45.40625 54.6875 \nL 54.390625 54.6875 \nz\n\" id=\"DejaVuSans-103\"/>\n      <path d=\"M 9.421875 54.6875 \nL 18.40625 54.6875 \nL 18.40625 0 \nL 9.421875 0 \nz\nM 9.421875 75.984375 \nL 18.40625 75.984375 \nL 18.40625 64.59375 \nL 9.421875 64.59375 \nz\n\" id=\"DejaVuSans-105\"/>\n      <path d=\"M 54.890625 33.015625 \nL 54.890625 0 \nL 45.90625 0 \nL 45.90625 32.71875 \nQ 45.90625 40.484375 42.875 44.328125 \nQ 39.84375 48.1875 33.796875 48.1875 \nQ 26.515625 48.1875 22.3125 43.546875 \nQ 18.109375 38.921875 18.109375 30.90625 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.1875 \nQ 21.34375 51.125 25.703125 53.5625 \nQ 30.078125 56 35.796875 56 \nQ 45.21875 56 50.046875 50.171875 \nQ 54.890625 44.34375 54.890625 33.015625 \nz\n\" id=\"DejaVuSans-110\"/>\n      <path id=\"DejaVuSans-32\"/>\n      <path d=\"M 10.59375 45.40625 \nL 73.1875 45.40625 \nL 73.1875 37.203125 \nL 10.59375 37.203125 \nz\nM 10.59375 25.484375 \nL 73.1875 25.484375 \nL 73.1875 17.1875 \nL 10.59375 17.1875 \nz\n\" id=\"DejaVuSans-61\"/>\n      <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n      <path d=\"M 10.6875 12.40625 \nL 21 12.40625 \nL 21 0 \nL 10.6875 0 \nz\n\" id=\"DejaVuSans-46\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- samples = 2 -->\n    <g transform=\"translate(146.865716 207.828438)scale(0.047418 -0.047418)\">\n     <defs>\n      <path d=\"M 44.28125 53.078125 \nL 44.28125 44.578125 \nQ 40.484375 46.53125 36.375 47.5 \nQ 32.28125 48.484375 27.875 48.484375 \nQ 21.1875 48.484375 17.84375 46.4375 \nQ 14.5 44.390625 14.5 40.28125 \nQ 14.5 37.15625 16.890625 35.375 \nQ 19.28125 33.59375 26.515625 31.984375 \nL 29.59375 31.296875 \nQ 39.15625 29.25 43.1875 25.515625 \nQ 47.21875 21.78125 47.21875 15.09375 \nQ 47.21875 7.46875 41.1875 3.015625 \nQ 35.15625 -1.421875 24.609375 -1.421875 \nQ 20.21875 -1.421875 15.453125 -0.5625 \nQ 10.6875 0.296875 5.421875 2 \nL 5.421875 11.28125 \nQ 10.40625 8.6875 15.234375 7.390625 \nQ 20.0625 6.109375 24.8125 6.109375 \nQ 31.15625 6.109375 34.5625 8.28125 \nQ 37.984375 10.453125 37.984375 14.40625 \nQ 37.984375 18.0625 35.515625 20.015625 \nQ 33.0625 21.96875 24.703125 23.78125 \nL 21.578125 24.515625 \nQ 13.234375 26.265625 9.515625 29.90625 \nQ 5.8125 33.546875 5.8125 39.890625 \nQ 5.8125 47.609375 11.28125 51.796875 \nQ 16.75 56 26.8125 56 \nQ 31.78125 56 36.171875 55.265625 \nQ 40.578125 54.546875 44.28125 53.078125 \nz\n\" id=\"DejaVuSans-115\"/>\n      <path d=\"M 34.28125 27.484375 \nQ 23.390625 27.484375 19.1875 25 \nQ 14.984375 22.515625 14.984375 16.5 \nQ 14.984375 11.71875 18.140625 8.90625 \nQ 21.296875 6.109375 26.703125 6.109375 \nQ 34.1875 6.109375 38.703125 11.40625 \nQ 43.21875 16.703125 43.21875 25.484375 \nL 43.21875 27.484375 \nz\nM 52.203125 31.203125 \nL 52.203125 0 \nL 43.21875 0 \nL 43.21875 8.296875 \nQ 40.140625 3.328125 35.546875 0.953125 \nQ 30.953125 -1.421875 24.3125 -1.421875 \nQ 15.921875 -1.421875 10.953125 3.296875 \nQ 6 8.015625 6 15.921875 \nQ 6 25.140625 12.171875 29.828125 \nQ 18.359375 34.515625 30.609375 34.515625 \nL 43.21875 34.515625 \nL 43.21875 35.40625 \nQ 43.21875 41.609375 39.140625 45 \nQ 35.0625 48.390625 27.6875 48.390625 \nQ 23 48.390625 18.546875 47.265625 \nQ 14.109375 46.140625 10.015625 43.890625 \nL 10.015625 52.203125 \nQ 14.9375 54.109375 19.578125 55.046875 \nQ 24.21875 56 28.609375 56 \nQ 40.484375 56 46.34375 49.84375 \nQ 52.203125 43.703125 52.203125 31.203125 \nz\n\" id=\"DejaVuSans-97\"/>\n      <path d=\"M 52 44.1875 \nQ 55.375 50.25 60.0625 53.125 \nQ 64.75 56 71.09375 56 \nQ 79.640625 56 84.28125 50.015625 \nQ 88.921875 44.046875 88.921875 33.015625 \nL 88.921875 0 \nL 79.890625 0 \nL 79.890625 32.71875 \nQ 79.890625 40.578125 77.09375 44.375 \nQ 74.3125 48.1875 68.609375 48.1875 \nQ 61.625 48.1875 57.5625 43.546875 \nQ 53.515625 38.921875 53.515625 30.90625 \nL 53.515625 0 \nL 44.484375 0 \nL 44.484375 32.71875 \nQ 44.484375 40.625 41.703125 44.40625 \nQ 38.921875 48.1875 33.109375 48.1875 \nQ 26.21875 48.1875 22.15625 43.53125 \nQ 18.109375 38.875 18.109375 30.90625 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.1875 \nQ 21.1875 51.21875 25.484375 53.609375 \nQ 29.78125 56 35.6875 56 \nQ 41.65625 56 45.828125 52.96875 \nQ 50 49.953125 52 44.1875 \nz\n\" id=\"DejaVuSans-109\"/>\n      <path d=\"M 18.109375 8.203125 \nL 18.109375 -20.796875 \nL 9.078125 -20.796875 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.390625 \nQ 20.953125 51.265625 25.265625 53.625 \nQ 29.59375 56 35.59375 56 \nQ 45.5625 56 51.78125 48.09375 \nQ 58.015625 40.1875 58.015625 27.296875 \nQ 58.015625 14.40625 51.78125 6.484375 \nQ 45.5625 -1.421875 35.59375 -1.421875 \nQ 29.59375 -1.421875 25.265625 0.953125 \nQ 20.953125 3.328125 18.109375 8.203125 \nz\nM 48.6875 27.296875 \nQ 48.6875 37.203125 44.609375 42.84375 \nQ 40.53125 48.484375 33.40625 48.484375 \nQ 26.265625 48.484375 22.1875 42.84375 \nQ 18.109375 37.203125 18.109375 27.296875 \nQ 18.109375 17.390625 22.1875 11.75 \nQ 26.265625 6.109375 33.40625 6.109375 \nQ 40.53125 6.109375 44.609375 11.75 \nQ 48.6875 17.390625 48.6875 27.296875 \nz\n\" id=\"DejaVuSans-112\"/>\n      <path d=\"M 9.421875 75.984375 \nL 18.40625 75.984375 \nL 18.40625 0 \nL 9.421875 0 \nz\n\" id=\"DejaVuSans-108\"/>\n      <path d=\"M 56.203125 29.59375 \nL 56.203125 25.203125 \nL 14.890625 25.203125 \nQ 15.484375 15.921875 20.484375 11.0625 \nQ 25.484375 6.203125 34.421875 6.203125 \nQ 39.59375 6.203125 44.453125 7.46875 \nQ 49.3125 8.734375 54.109375 11.28125 \nL 54.109375 2.78125 \nQ 49.265625 0.734375 44.1875 -0.34375 \nQ 39.109375 -1.421875 33.890625 -1.421875 \nQ 20.796875 -1.421875 13.15625 6.1875 \nQ 5.515625 13.8125 5.515625 26.8125 \nQ 5.515625 40.234375 12.765625 48.109375 \nQ 20.015625 56 32.328125 56 \nQ 43.359375 56 49.78125 48.890625 \nQ 56.203125 41.796875 56.203125 29.59375 \nz\nM 47.21875 32.234375 \nQ 47.125 39.59375 43.09375 43.984375 \nQ 39.0625 48.390625 32.421875 48.390625 \nQ 24.90625 48.390625 20.390625 44.140625 \nQ 15.875 39.890625 15.1875 32.171875 \nz\n\" id=\"DejaVuSans-101\"/>\n      <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-50\"/>\n    </g>\n    <!-- value = [0, 2, 0] -->\n    <g transform=\"translate(142.363608 213.138205)scale(0.047418 -0.047418)\">\n     <defs>\n      <path d=\"M 2.984375 54.6875 \nL 12.5 54.6875 \nL 29.59375 8.796875 \nL 46.6875 54.6875 \nL 56.203125 54.6875 \nL 35.6875 0 \nL 23.484375 0 \nz\n\" id=\"DejaVuSans-118\"/>\n      <path d=\"M 8.5 21.578125 \nL 8.5 54.6875 \nL 17.484375 54.6875 \nL 17.484375 21.921875 \nQ 17.484375 14.15625 20.5 10.265625 \nQ 23.53125 6.390625 29.59375 6.390625 \nQ 36.859375 6.390625 41.078125 11.03125 \nQ 45.3125 15.671875 45.3125 23.6875 \nL 45.3125 54.6875 \nL 54.296875 54.6875 \nL 54.296875 0 \nL 45.3125 0 \nL 45.3125 8.40625 \nQ 42.046875 3.421875 37.71875 1 \nQ 33.40625 -1.421875 27.6875 -1.421875 \nQ 18.265625 -1.421875 13.375 4.4375 \nQ 8.5 10.296875 8.5 21.578125 \nz\nM 31.109375 56 \nz\n\" id=\"DejaVuSans-117\"/>\n      <path d=\"M 8.59375 75.984375 \nL 29.296875 75.984375 \nL 29.296875 69 \nL 17.578125 69 \nL 17.578125 -6.203125 \nL 29.296875 -6.203125 \nL 29.296875 -13.1875 \nL 8.59375 -13.1875 \nz\n\" id=\"DejaVuSans-91\"/>\n      <path d=\"M 11.71875 12.40625 \nL 22.015625 12.40625 \nL 22.015625 4 \nL 14.015625 -11.625 \nL 7.71875 -11.625 \nL 11.71875 4 \nz\n\" id=\"DejaVuSans-44\"/>\n      <path d=\"M 30.421875 75.984375 \nL 30.421875 -13.1875 \nL 9.71875 -13.1875 \nL 9.71875 -6.203125 \nL 21.390625 -6.203125 \nL 21.390625 69 \nL 9.71875 69 \nL 9.71875 75.984375 \nz\n\" id=\"DejaVuSans-93\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-50\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"682.128906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"713.916016\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 204.317979 193.978202 \nQ 196.800886 183.400387 188.636147 171.911224 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 203.992302 191.882767 \nL 204.317979 193.978202 \nL 202.446225 192.981482 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_2\">\n    <g id=\"patch_5\">\n     <path d=\"M 191.974585 216.021065 \nL 234.486954 216.021065 \nL 234.486954 197.018935 \nL 191.974585 197.018935 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- gini = 0.0 -->\n    <g transform=\"translate(201.641538 202.51867)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- samples = 1 -->\n    <g transform=\"translate(198.373408 207.828438)scale(0.047418 -0.047418)\">\n     <defs>\n      <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-49\"/>\n    </g>\n    <!-- value = [0, 0, 1] -->\n    <g transform=\"translate(193.871301 213.138205)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"682.128906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"713.916016\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 41.866637 157.738202 \nQ 49.383729 147.160387 57.548468 135.671224 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 43.738391 156.741482 \nL 41.866637 157.738202 \nL 42.192313 155.642767 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_3\">\n    <g id=\"patch_7\">\n     <path d=\"M 10.18918 179.781065 \nL 55.718512 179.781065 \nL 55.718512 160.778935 \nL 10.18918 160.778935 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- gini = 0.0 -->\n    <g transform=\"translate(21.364615 166.27867)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- samples = 47 -->\n    <g transform=\"translate(16.588003 171.588438)scale(0.047418 -0.047418)\">\n     <defs>\n      <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n      <path d=\"M 8.203125 72.90625 \nL 55.078125 72.90625 \nL 55.078125 68.703125 \nL 28.609375 0 \nL 18.3125 0 \nL 43.21875 64.59375 \nL 8.203125 64.59375 \nz\n\" id=\"DejaVuSans-55\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"626.660156\" xlink:href=\"#DejaVuSans-55\"/>\n    </g>\n    <!-- value = [0, 47, 0] -->\n    <g transform=\"translate(12.085896 176.898205)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-55\"/>\n     <use x=\"713.964844\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"745.751953\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"841.162109\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_8\">\n    <path d=\"M 75.548748 157.738202 \nQ 68.031655 147.160387 59.866917 135.671224 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 75.223071 155.642767 \nL 75.548748 157.738202 \nL 73.676994 156.741482 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_4\">\n    <g id=\"patch_9\">\n     <path d=\"M 63.205354 179.781065 \nL 105.717723 179.781065 \nL 105.717723 160.778935 \nL 63.205354 160.778935 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- gini = 0.0 -->\n    <g transform=\"translate(72.872308 166.27867)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- samples = 1 -->\n    <g transform=\"translate(69.604177 171.588438)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-49\"/>\n    </g>\n    <!-- value = [0, 0, 1] -->\n    <g transform=\"translate(65.10207 176.898205)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"682.128906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"713.916016\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_10\">\n    <path d=\"M 144.882021 157.738202 \nQ 152.399114 147.160387 160.563853 135.671224 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 146.753775 156.741482 \nL 144.882021 157.738202 \nL 145.207698 155.642767 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_5\">\n    <g id=\"patch_11\">\n     <path d=\"M 114.713046 179.781065 \nL 157.225415 179.781065 \nL 157.225415 160.778935 \nL 114.713046 160.778935 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- gini = 0.0 -->\n    <g transform=\"translate(124.38 166.27867)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- samples = 3 -->\n    <g transform=\"translate(121.11187 171.588438)scale(0.047418 -0.047418)\">\n     <defs>\n      <path d=\"M 40.578125 39.3125 \nQ 47.65625 37.796875 51.625 33 \nQ 55.609375 28.21875 55.609375 21.1875 \nQ 55.609375 10.40625 48.1875 4.484375 \nQ 40.765625 -1.421875 27.09375 -1.421875 \nQ 22.515625 -1.421875 17.65625 -0.515625 \nQ 12.796875 0.390625 7.625 2.203125 \nL 7.625 11.71875 \nQ 11.71875 9.328125 16.59375 8.109375 \nQ 21.484375 6.890625 26.8125 6.890625 \nQ 36.078125 6.890625 40.9375 10.546875 \nQ 45.796875 14.203125 45.796875 21.1875 \nQ 45.796875 27.640625 41.28125 31.265625 \nQ 36.765625 34.90625 28.71875 34.90625 \nL 20.21875 34.90625 \nL 20.21875 43.015625 \nL 29.109375 43.015625 \nQ 36.375 43.015625 40.234375 45.921875 \nQ 44.09375 48.828125 44.09375 54.296875 \nQ 44.09375 59.90625 40.109375 62.90625 \nQ 36.140625 65.921875 28.71875 65.921875 \nQ 24.65625 65.921875 20.015625 65.03125 \nQ 15.375 64.15625 9.8125 62.3125 \nL 9.8125 71.09375 \nQ 15.4375 72.65625 20.34375 73.4375 \nQ 25.25 74.21875 29.59375 74.21875 \nQ 40.828125 74.21875 47.359375 69.109375 \nQ 53.90625 64.015625 53.90625 55.328125 \nQ 53.90625 49.265625 50.4375 45.09375 \nQ 46.96875 40.921875 40.578125 39.3125 \nz\n\" id=\"DejaVuSans-51\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-51\"/>\n    </g>\n    <!-- value = [0, 0, 3] -->\n    <g transform=\"translate(116.609762 176.898205)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"682.128906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"713.916016\" xlink:href=\"#DejaVuSans-51\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_12\">\n    <path d=\"M 176.676396 155.081839 \nQ 170.103454 145.832602 162.882865 135.672018 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 176.350719 152.986404 \nL 176.676396 155.081839 \nL 174.804642 154.085119 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_6\">\n    <g id=\"patch_13\">\n     <path d=\"M 166.220739 182.435949 \nL 208.733107 182.435949 \nL 208.733107 158.124051 \nL 166.220739 158.124051 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- X[0] &lt;= 6.95 -->\n    <g transform=\"translate(171.734922 163.623787)scale(0.047418 -0.047418)\">\n     <defs>\n      <path d=\"M 6.296875 72.90625 \nL 16.890625 72.90625 \nL 35.015625 45.796875 \nL 53.21875 72.90625 \nL 63.8125 72.90625 \nL 40.375 37.890625 \nL 65.375 0 \nL 54.78125 0 \nL 34.28125 31 \nL 13.625 0 \nL 2.984375 0 \nL 29 38.921875 \nz\n\" id=\"DejaVuSans-88\"/>\n      <path d=\"M 73.1875 49.21875 \nL 22.796875 31.296875 \nL 73.1875 13.484375 \nL 73.1875 4.59375 \nL 10.59375 27.296875 \nL 10.59375 35.40625 \nL 73.1875 58.109375 \nz\n\" id=\"DejaVuSans-60\"/>\n      <path d=\"M 33.015625 40.375 \nQ 26.375 40.375 22.484375 35.828125 \nQ 18.609375 31.296875 18.609375 23.390625 \nQ 18.609375 15.53125 22.484375 10.953125 \nQ 26.375 6.390625 33.015625 6.390625 \nQ 39.65625 6.390625 43.53125 10.953125 \nQ 47.40625 15.53125 47.40625 23.390625 \nQ 47.40625 31.296875 43.53125 35.828125 \nQ 39.65625 40.375 33.015625 40.375 \nz\nM 52.59375 71.296875 \nL 52.59375 62.3125 \nQ 48.875 64.0625 45.09375 64.984375 \nQ 41.3125 65.921875 37.59375 65.921875 \nQ 27.828125 65.921875 22.671875 59.328125 \nQ 17.53125 52.734375 16.796875 39.40625 \nQ 19.671875 43.65625 24.015625 45.921875 \nQ 28.375 48.1875 33.59375 48.1875 \nQ 44.578125 48.1875 50.953125 41.515625 \nQ 57.328125 34.859375 57.328125 23.390625 \nQ 57.328125 12.15625 50.6875 5.359375 \nQ 44.046875 -1.421875 33.015625 -1.421875 \nQ 20.359375 -1.421875 13.671875 8.265625 \nQ 6.984375 17.96875 6.984375 36.375 \nQ 6.984375 53.65625 15.1875 63.9375 \nQ 23.390625 74.21875 37.203125 74.21875 \nQ 40.921875 74.21875 44.703125 73.484375 \nQ 48.484375 72.75 52.59375 71.296875 \nz\n\" id=\"DejaVuSans-54\"/>\n      <path d=\"M 10.984375 1.515625 \nL 10.984375 10.5 \nQ 14.703125 8.734375 18.5 7.8125 \nQ 22.3125 6.890625 25.984375 6.890625 \nQ 35.75 6.890625 40.890625 13.453125 \nQ 46.046875 20.015625 46.78125 33.40625 \nQ 43.953125 29.203125 39.59375 26.953125 \nQ 35.25 24.703125 29.984375 24.703125 \nQ 19.046875 24.703125 12.671875 31.3125 \nQ 6.296875 37.9375 6.296875 49.421875 \nQ 6.296875 60.640625 12.9375 67.421875 \nQ 19.578125 74.21875 30.609375 74.21875 \nQ 43.265625 74.21875 49.921875 64.515625 \nQ 56.59375 54.828125 56.59375 36.375 \nQ 56.59375 19.140625 48.40625 8.859375 \nQ 40.234375 -1.421875 26.421875 -1.421875 \nQ 22.703125 -1.421875 18.890625 -0.6875 \nQ 15.09375 0.046875 10.984375 1.515625 \nz\nM 30.609375 32.421875 \nQ 37.25 32.421875 41.125 36.953125 \nQ 45.015625 41.5 45.015625 49.421875 \nQ 45.015625 57.28125 41.125 61.84375 \nQ 37.25 66.40625 30.609375 66.40625 \nQ 23.96875 66.40625 20.09375 61.84375 \nQ 16.21875 57.28125 16.21875 49.421875 \nQ 16.21875 41.5 20.09375 36.953125 \nQ 23.96875 32.421875 30.609375 32.421875 \nz\n\" id=\"DejaVuSans-57\"/>\n      <path d=\"M 10.796875 72.90625 \nL 49.515625 72.90625 \nL 49.515625 64.59375 \nL 19.828125 64.59375 \nL 19.828125 46.734375 \nQ 21.96875 47.46875 24.109375 47.828125 \nQ 26.265625 48.1875 28.421875 48.1875 \nQ 40.625 48.1875 47.75 41.5 \nQ 54.890625 34.8125 54.890625 23.390625 \nQ 54.890625 11.625 47.5625 5.09375 \nQ 40.234375 -1.421875 26.90625 -1.421875 \nQ 22.3125 -1.421875 17.546875 -0.640625 \nQ 12.796875 0.140625 7.71875 1.703125 \nL 7.71875 11.625 \nQ 12.109375 9.234375 16.796875 8.0625 \nQ 21.484375 6.890625 26.703125 6.890625 \nQ 35.15625 6.890625 40.078125 11.328125 \nQ 45.015625 15.765625 45.015625 23.390625 \nQ 45.015625 31 40.078125 35.4375 \nQ 35.15625 39.890625 26.703125 39.890625 \nQ 22.75 39.890625 18.8125 39.015625 \nQ 14.890625 38.140625 10.796875 36.28125 \nz\n\" id=\"DejaVuSans-53\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-88\"/>\n     <use x=\"68.505859\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"107.519531\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"171.142578\" xlink:href=\"#DejaVuSans-93\"/>\n     <use x=\"210.15625\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"241.943359\" xlink:href=\"#DejaVuSans-60\"/>\n     <use x=\"325.732422\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"409.521484\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"441.308594\" xlink:href=\"#DejaVuSans-54\"/>\n     <use x=\"504.931641\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"536.71875\" xlink:href=\"#DejaVuSans-57\"/>\n     <use x=\"600.341797\" xlink:href=\"#DejaVuSans-53\"/>\n    </g>\n    <!-- gini = 0.444 -->\n    <g transform=\"translate(172.870729 168.933554)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"488.818359\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"552.441406\" xlink:href=\"#DejaVuSans-52\"/>\n    </g>\n    <!-- samples = 3 -->\n    <g transform=\"translate(172.619562 174.243321)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-51\"/>\n    </g>\n    <!-- value = [0, 2, 1] -->\n    <g transform=\"translate(168.117455 179.553089)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-50\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"682.128906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"713.916016\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_14\">\n    <path d=\"M 247.897406 157.738202 \nQ 255.414498 147.160387 263.579237 135.671224 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 249.76916 156.741482 \nL 247.897406 157.738202 \nL 248.223082 155.642767 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_7\">\n    <g id=\"patch_15\">\n     <path d=\"M 217.728431 179.781065 \nL 260.2408 179.781065 \nL 260.2408 160.778935 \nL 217.728431 160.778935 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- gini = 0.0 -->\n    <g transform=\"translate(227.395385 166.27867)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- samples = 1 -->\n    <g transform=\"translate(224.127254 171.588438)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-49\"/>\n    </g>\n    <!-- value = [0, 1, 0] -->\n    <g transform=\"translate(219.625147 176.898205)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"682.128906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"713.916016\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_16\">\n    <path d=\"M 281.579517 157.738202 \nQ 274.062425 147.160387 265.897686 135.671224 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 281.253841 155.642767 \nL 281.579517 157.738202 \nL 279.707763 156.741482 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_8\">\n    <g id=\"patch_17\">\n     <path d=\"M 269.236123 179.781065 \nL 311.748492 179.781065 \nL 311.748492 160.778935 \nL 269.236123 160.778935 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- gini = 0.0 -->\n    <g transform=\"translate(278.903077 166.27867)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- samples = 2 -->\n    <g transform=\"translate(275.634946 171.588438)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-50\"/>\n    </g>\n    <!-- value = [0, 0, 2] -->\n    <g transform=\"translate(271.132839 176.898205)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"682.128906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"713.916016\" xlink:href=\"#DejaVuSans-50\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_18\">\n    <path d=\"M 79.242421 119.592089 \nQ 93.452339 109.594215 108.576643 98.952993 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 81.339367 119.276282 \nL 79.242421 119.592089 \nL 80.247943 117.725048 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_9\">\n    <g id=\"patch_19\">\n     <path d=\"M 35.943026 146.195949 \nL 81.472359 146.195949 \nL 81.472359 121.884051 \nL 35.943026 121.884051 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- X[3] &lt;= 1.65 -->\n    <g transform=\"translate(42.965691 127.383787)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-88\"/>\n     <use x=\"68.505859\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"107.519531\" xlink:href=\"#DejaVuSans-51\"/>\n     <use x=\"171.142578\" xlink:href=\"#DejaVuSans-93\"/>\n     <use x=\"210.15625\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"241.943359\" xlink:href=\"#DejaVuSans-60\"/>\n     <use x=\"325.732422\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"409.521484\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"441.308594\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"504.931641\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"536.71875\" xlink:href=\"#DejaVuSans-54\"/>\n     <use x=\"600.341797\" xlink:href=\"#DejaVuSans-53\"/>\n    </g>\n    <!-- gini = 0.041 -->\n    <g transform=\"translate(44.101498 132.693554)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"488.818359\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"552.441406\" xlink:href=\"#DejaVuSans-49\"/>\n    </g>\n    <!-- samples = 48 -->\n    <g transform=\"translate(42.341849 138.003321)scale(0.047418 -0.047418)\">\n     <defs>\n      <path d=\"M 31.78125 34.625 \nQ 24.75 34.625 20.71875 30.859375 \nQ 16.703125 27.09375 16.703125 20.515625 \nQ 16.703125 13.921875 20.71875 10.15625 \nQ 24.75 6.390625 31.78125 6.390625 \nQ 38.8125 6.390625 42.859375 10.171875 \nQ 46.921875 13.96875 46.921875 20.515625 \nQ 46.921875 27.09375 42.890625 30.859375 \nQ 38.875 34.625 31.78125 34.625 \nz\nM 21.921875 38.8125 \nQ 15.578125 40.375 12.03125 44.71875 \nQ 8.5 49.078125 8.5 55.328125 \nQ 8.5 64.0625 14.71875 69.140625 \nQ 20.953125 74.21875 31.78125 74.21875 \nQ 42.671875 74.21875 48.875 69.140625 \nQ 55.078125 64.0625 55.078125 55.328125 \nQ 55.078125 49.078125 51.53125 44.71875 \nQ 48 40.375 41.703125 38.8125 \nQ 48.828125 37.15625 52.796875 32.3125 \nQ 56.78125 27.484375 56.78125 20.515625 \nQ 56.78125 9.90625 50.3125 4.234375 \nQ 43.84375 -1.421875 31.78125 -1.421875 \nQ 19.734375 -1.421875 13.25 4.234375 \nQ 6.78125 9.90625 6.78125 20.515625 \nQ 6.78125 27.484375 10.78125 32.3125 \nQ 14.796875 37.15625 21.921875 38.8125 \nz\nM 18.3125 54.390625 \nQ 18.3125 48.734375 21.84375 45.5625 \nQ 25.390625 42.390625 31.78125 42.390625 \nQ 38.140625 42.390625 41.71875 45.5625 \nQ 45.3125 48.734375 45.3125 54.390625 \nQ 45.3125 60.0625 41.71875 63.234375 \nQ 38.140625 66.40625 31.78125 66.40625 \nQ 25.390625 66.40625 21.84375 63.234375 \nQ 18.3125 60.0625 18.3125 54.390625 \nz\n\" id=\"DejaVuSans-56\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"626.660156\" xlink:href=\"#DejaVuSans-56\"/>\n    </g>\n    <!-- value = [0, 47, 1] -->\n    <g transform=\"translate(37.839742 143.313089)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-55\"/>\n     <use x=\"713.964844\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"745.751953\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"841.162109\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_20\">\n    <path d=\"M 141.188348 119.592089 \nQ 126.978431 109.594215 111.854127 98.952993 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 140.182826 117.725048 \nL 141.188348 119.592089 \nL 139.091402 119.276282 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_10\">\n    <g id=\"patch_21\">\n     <path d=\"M 140.466893 146.195949 \nL 182.979261 146.195949 \nL 182.979261 121.884051 \nL 140.466893 121.884051 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- X[3] &lt;= 1.55 -->\n    <g transform=\"translate(145.981076 127.383787)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-88\"/>\n     <use x=\"68.505859\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"107.519531\" xlink:href=\"#DejaVuSans-51\"/>\n     <use x=\"171.142578\" xlink:href=\"#DejaVuSans-93\"/>\n     <use x=\"210.15625\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"241.943359\" xlink:href=\"#DejaVuSans-60\"/>\n     <use x=\"325.732422\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"409.521484\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"441.308594\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"504.931641\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"536.71875\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"600.341797\" xlink:href=\"#DejaVuSans-53\"/>\n    </g>\n    <!-- gini = 0.444 -->\n    <g transform=\"translate(147.116882 132.693554)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"488.818359\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"552.441406\" xlink:href=\"#DejaVuSans-52\"/>\n    </g>\n    <!-- samples = 6 -->\n    <g transform=\"translate(146.865716 138.003321)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-54\"/>\n    </g>\n    <!-- value = [0, 2, 4] -->\n    <g transform=\"translate(142.363608 143.313089)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-50\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"682.128906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"713.916016\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_22\">\n    <path d=\"M 275.538989 118.841839 \nQ 282.111931 109.592602 289.332519 99.432018 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 277.410743 117.845119 \nL 275.538989 118.841839 \nL 275.864665 116.746404 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_11\">\n    <g id=\"patch_23\">\n     <path d=\"M 243.482277 146.195949 \nL 285.994646 146.195949 \nL 285.994646 121.884051 \nL 243.482277 121.884051 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- X[0] &lt;= 5.95 -->\n    <g transform=\"translate(248.99646 127.383787)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-88\"/>\n     <use x=\"68.505859\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"107.519531\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"171.142578\" xlink:href=\"#DejaVuSans-93\"/>\n     <use x=\"210.15625\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"241.943359\" xlink:href=\"#DejaVuSans-60\"/>\n     <use x=\"325.732422\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"409.521484\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"441.308594\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"504.931641\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"536.71875\" xlink:href=\"#DejaVuSans-57\"/>\n     <use x=\"600.341797\" xlink:href=\"#DejaVuSans-53\"/>\n    </g>\n    <!-- gini = 0.444 -->\n    <g transform=\"translate(250.132267 132.693554)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"488.818359\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"552.441406\" xlink:href=\"#DejaVuSans-52\"/>\n    </g>\n    <!-- samples = 3 -->\n    <g transform=\"translate(249.8811 138.003321)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-51\"/>\n    </g>\n    <!-- value = [0, 1, 2] -->\n    <g transform=\"translate(245.378993 143.313089)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"682.128906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"713.916016\" xlink:href=\"#DejaVuSans-50\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_24\">\n    <path d=\"M 307.333363 121.498202 \nQ 299.816271 110.920387 291.651532 99.431224 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 307.007687 119.402767 \nL 307.333363 121.498202 \nL 305.461609 120.501482 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_12\">\n    <g id=\"patch_25\">\n     <path d=\"M 293.481488 143.541065 \nL 339.01082 143.541065 \nL 339.01082 124.538935 \nL 293.481488 124.538935 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- gini = 0.0 -->\n    <g transform=\"translate(304.656923 130.03867)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- samples = 43 -->\n    <g transform=\"translate(299.880311 135.348438)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"626.660156\" xlink:href=\"#DejaVuSans-51\"/>\n    </g>\n    <!-- value = [0, 0, 43] -->\n    <g transform=\"translate(295.378204 140.658205)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"682.128906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"713.916016\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-51\"/>\n     <use x=\"841.162109\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_26\">\n    <path d=\"M 136.37348 87.283186 \nQ 166.918383 75.002666 198.500619 62.305086 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 138.487056 87.455563 \nL 136.37348 87.283186 \nL 137.779527 85.695752 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_13\">\n    <g id=\"patch_27\">\n     <path d=\"M 87.450718 109.955949 \nL 132.980051 109.955949 \nL 132.980051 85.644051 \nL 87.450718 85.644051 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- X[2] &lt;= 4.95 -->\n    <g transform=\"translate(94.473383 91.143787)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-88\"/>\n     <use x=\"68.505859\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"107.519531\" xlink:href=\"#DejaVuSans-50\"/>\n     <use x=\"171.142578\" xlink:href=\"#DejaVuSans-93\"/>\n     <use x=\"210.15625\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"241.943359\" xlink:href=\"#DejaVuSans-60\"/>\n     <use x=\"325.732422\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"409.521484\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"441.308594\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"504.931641\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"536.71875\" xlink:href=\"#DejaVuSans-57\"/>\n     <use x=\"600.341797\" xlink:href=\"#DejaVuSans-53\"/>\n    </g>\n    <!-- gini = 0.168 -->\n    <g transform=\"translate(95.60919 96.453554)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"488.818359\" xlink:href=\"#DejaVuSans-54\"/>\n     <use x=\"552.441406\" xlink:href=\"#DejaVuSans-56\"/>\n    </g>\n    <!-- samples = 54 -->\n    <g transform=\"translate(93.849541 101.763321)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"626.660156\" xlink:href=\"#DejaVuSans-52\"/>\n    </g>\n    <!-- value = [0, 49, 5] -->\n    <g transform=\"translate(89.347434 107.073089)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-57\"/>\n     <use x=\"713.964844\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"745.751953\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"841.162109\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_28\">\n    <path d=\"M 264.334212 87.283186 \nQ 233.78931 75.002666 202.207073 62.305086 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 262.928165 85.695752 \nL 264.334212 87.283186 \nL 262.220637 87.455563 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_14\">\n    <g id=\"patch_29\">\n     <path d=\"M 267.727641 109.955949 \nL 313.256974 109.955949 \nL 313.256974 85.644051 \nL 267.727641 85.644051 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- X[2] &lt;= 4.85 -->\n    <g transform=\"translate(274.750306 91.143787)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-88\"/>\n     <use x=\"68.505859\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"107.519531\" xlink:href=\"#DejaVuSans-50\"/>\n     <use x=\"171.142578\" xlink:href=\"#DejaVuSans-93\"/>\n     <use x=\"210.15625\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"241.943359\" xlink:href=\"#DejaVuSans-60\"/>\n     <use x=\"325.732422\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"409.521484\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"441.308594\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"504.931641\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"536.71875\" xlink:href=\"#DejaVuSans-56\"/>\n     <use x=\"600.341797\" xlink:href=\"#DejaVuSans-53\"/>\n    </g>\n    <!-- gini = 0.043 -->\n    <g transform=\"translate(275.886113 96.453554)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"488.818359\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"552.441406\" xlink:href=\"#DejaVuSans-51\"/>\n    </g>\n    <!-- samples = 46 -->\n    <g transform=\"translate(274.126465 101.763321)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"626.660156\" xlink:href=\"#DejaVuSans-54\"/>\n    </g>\n    <!-- value = [0, 1, 45] -->\n    <g transform=\"translate(269.624357 107.073089)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"682.128906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"713.916016\" xlink:href=\"#DejaVuSans-52\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"841.162109\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_30\">\n    <path d=\"M 157.758944 49.018202 \nQ 165.276037 38.440387 173.440776 26.951224 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 159.630698 48.021482 \nL 157.758944 49.018202 \nL 158.084621 46.922767 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_15\">\n    <g id=\"patch_31\">\n     <path d=\"M 126.081488 71.061065 \nL 171.61082 71.061065 \nL 171.61082 52.058935 \nL 126.081488 52.058935 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- gini = 0.0 -->\n    <g transform=\"translate(137.256923 57.55867)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- samples = 50 -->\n    <g transform=\"translate(132.480311 62.868438)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"626.660156\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- value = [50, 0, 0] -->\n    <g transform=\"translate(127.978204 68.178205)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"586.767578\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"618.554688\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"713.964844\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"745.751953\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"841.162109\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_32\">\n    <path d=\"M 189.553319 46.361839 \nQ 182.980377 37.112602 175.759789 26.952018 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n    <path d=\"M 189.227642 44.266404 \nL 189.553319 46.361839 \nL 187.681565 45.365119 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_16\">\n    <g id=\"patch_33\">\n     <path d=\"M 176.080698 73.715949 \nL 224.626994 73.715949 \nL 224.626994 49.404051 \nL 176.080698 49.404051 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- X[3] &lt;= 1.75 -->\n    <g transform=\"translate(184.611845 54.903787)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-88\"/>\n     <use x=\"68.505859\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"107.519531\" xlink:href=\"#DejaVuSans-51\"/>\n     <use x=\"171.142578\" xlink:href=\"#DejaVuSans-93\"/>\n     <use x=\"210.15625\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"241.943359\" xlink:href=\"#DejaVuSans-60\"/>\n     <use x=\"325.732422\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"409.521484\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"441.308594\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"504.931641\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"536.71875\" xlink:href=\"#DejaVuSans-55\"/>\n     <use x=\"600.341797\" xlink:href=\"#DejaVuSans-53\"/>\n    </g>\n    <!-- gini = 0.5 -->\n    <g transform=\"translate(188.764615 60.213554)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-53\"/>\n    </g>\n    <!-- samples = 100 -->\n    <g transform=\"translate(182.479521 65.523321)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"626.660156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"690.283203\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- value = [0, 50, 50] -->\n    <g transform=\"translate(177.977414 70.833089)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"554.931641\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"586.71875\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"713.964844\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"745.751953\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"777.539062\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"841.162109\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"904.785156\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n   <g id=\"patch_34\">\n    <path d=\"M 174.6 25.32 \nQ 174.6 25.32 174.6 25.32 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:round;\"/>\n   </g>\n   <g id=\"text_17\">\n    <g id=\"patch_35\">\n     <path d=\"M 148.81837 37.475949 \nL 200.38163 37.475949 \nL 200.38163 13.164051 \nL 148.81837 13.164051 \nz\n\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;\"/>\n    </g>\n    <!-- X[3] &lt;= 0.8 -->\n    <g transform=\"translate(160.36648 18.663787)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-88\"/>\n     <use x=\"68.505859\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"107.519531\" xlink:href=\"#DejaVuSans-51\"/>\n     <use x=\"171.142578\" xlink:href=\"#DejaVuSans-93\"/>\n     <use x=\"210.15625\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"241.943359\" xlink:href=\"#DejaVuSans-60\"/>\n     <use x=\"325.732422\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"409.521484\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"441.308594\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"504.931641\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"536.71875\" xlink:href=\"#DejaVuSans-56\"/>\n    </g>\n    <!-- gini = 0.667 -->\n    <g transform=\"translate(159.993805 23.973554)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-103\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"91.259766\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"214.208984\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"297.998047\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"329.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"393.408203\" xlink:href=\"#DejaVuSans-46\"/>\n     <use x=\"425.195312\" xlink:href=\"#DejaVuSans-54\"/>\n     <use x=\"488.818359\" xlink:href=\"#DejaVuSans-54\"/>\n     <use x=\"552.441406\" xlink:href=\"#DejaVuSans-55\"/>\n    </g>\n    <!-- samples = 150 -->\n    <g transform=\"translate(156.725675 29.283321)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-109\"/>\n     <use x=\"210.791016\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"274.267578\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"302.050781\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"363.574219\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"415.673828\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"447.460938\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"531.25\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"563.037109\" xlink:href=\"#DejaVuSans-49\"/>\n     <use x=\"626.660156\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"690.283203\" xlink:href=\"#DejaVuSans-48\"/>\n    </g>\n    <!-- value = [50, 50, 50] -->\n    <g transform=\"translate(150.715086 34.593089)scale(0.047418 -0.047418)\">\n     <use xlink:href=\"#DejaVuSans-118\"/>\n     <use x=\"59.179688\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"120.458984\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"148.242188\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"211.621094\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"273.144531\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"304.931641\" xlink:href=\"#DejaVuSans-61\"/>\n     <use x=\"388.720703\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"420.507812\" xlink:href=\"#DejaVuSans-91\"/>\n     <use x=\"459.521484\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"523.144531\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"586.767578\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"618.554688\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"650.341797\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"713.964844\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"777.587891\" xlink:href=\"#DejaVuSans-44\"/>\n     <use x=\"809.375\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"841.162109\" xlink:href=\"#DejaVuSans-53\"/>\n     <use x=\"904.785156\" xlink:href=\"#DejaVuSans-48\"/>\n     <use x=\"968.408203\" xlink:href=\"#DejaVuSans-93\"/>\n    </g>\n   </g>\n  </g>\n </g>\n</svg>\n",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "source": [
    "tree.plot_tree(clf) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "output_type": "error",
     "ename": "CalledProcessError",
     "evalue": "Command '['dot', '-Kdot', '-Tpdf', '-O', 'iris-tree-graph.dot']' died with <Signals.SIGKILL: 9>. [stderr: b'']",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mCalledProcessError\u001b[0m                        Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-17-77cec7baf292>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0mdot_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtree\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexport_graphviz\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mclf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout_file\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mgraph\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgraphviz\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSource\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdot_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mgraph\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrender\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"iris-tree-graph.dot\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/anaconda3/envs/ml_py37/lib/python3.7/site-packages/graphviz/files.py\u001b[0m in \u001b[0;36mrender\u001b[0;34m(self, filename, directory, view, cleanup, format, renderer, formatter, quiet, quiet_view)\u001b[0m\n\u001b[1;32m    243\u001b[0m         rendered = backend.render(self._engine, format, filepath,\n\u001b[1;32m    244\u001b[0m                                   \u001b[0mrenderer\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformatter\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mformatter\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 245\u001b[0;31m                                   quiet=quiet)\n\u001b[0m\u001b[1;32m    246\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    247\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mcleanup\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/ml_py37/lib/python3.7/site-packages/graphviz/backend.py\u001b[0m in \u001b[0;36mrender\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m    223\u001b[0m         \u001b[0mcwd\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    224\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 225\u001b[0;31m     \u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcapture_output\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcwd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcwd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcheck\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mquiet\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mquiet\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    226\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mrendered\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    227\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/ml_py37/lib/python3.7/site-packages/graphviz/backend.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(cmd, input, capture_output, check, encoding, quiet, **kwargs)\u001b[0m\n\u001b[1;32m    184\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mcheck\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mproc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreturncode\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    185\u001b[0m         raise CalledProcessError(proc.returncode, cmd,\n\u001b[0;32m--> 186\u001b[0;31m                                  output=out, stderr=err)\n\u001b[0m\u001b[1;32m    187\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    188\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mCalledProcessError\u001b[0m: Command '['dot', '-Kdot', '-Tpdf', '-O', 'iris-tree-graph.dot']' died with <Signals.SIGKILL: 9>. [stderr: b'']"
     ]
    }
   ],
   "source": [
    ">>> import graphviz \n",
    ">>> dot_data = tree.export_graphviz(clf, out_file=None) \n",
    ">>> graph = graphviz.Source(dot_data) \n",
    ">>> graph.render(\"iris-tree-graph.dot\") "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> dot_data = tree.export_graphviz(clf, out_file=None, \n",
    "...                      feature_names=iris.feature_names,  \n",
    "...                      class_names=iris.target_names,  \n",
    "...                      filled=True, rounded=True,  \n",
    "...                      special_characters=True)  \n",
    "# >>> graph = graphviz.Source(dot_data) \n",
    "# save `dot_data` value as file \"iris-tree-v2-graph.dot\", then open by Graphviz.app， that's ok!!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "iris = load_iris()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "'digraph Tree {\\nnode [shape=box, style=\"filled, rounded\", color=\"black\", fontname=helvetica] ;\\nedge [fontname=helvetica] ;\\n0 [label=<petal width (cm) &le; 0.8<br/>gini = 0.667<br/>samples = 150<br/>value = [50, 50, 50]<br/>class = setosa>, fillcolor=\"#ffffff\"] ;\\n1 [label=<gini = 0.0<br/>samples = 50<br/>value = [50, 0, 0]<br/>class = setosa>, fillcolor=\"#e58139\"] ;\\n0 -> 1 [labeldistance=2.5, labelangle=45, headlabel=\"True\"] ;\\n2 [label=<petal width (cm) &le; 1.75<br/>gini = 0.5<br/>samples = 100<br/>value = [0, 50, 50]<br/>class = versicolor>, fillcolor=\"#ffffff\"] ;\\n0 -> 2 [labeldistance=2.5, labelangle=-45, headlabel=\"False\"] ;\\n3 [label=<petal length (cm) &le; 4.95<br/>gini = 0.168<br/>samples = 54<br/>value = [0, 49, 5]<br/>class = versicolor>, fillcolor=\"#4de88e\"] ;\\n2 -> 3 ;\\n4 [label=<petal width (cm) &le; 1.65<br/>gini = 0.041<br/>samples = 48<br/>value = [0, 47, 1]<br/>class = versicolor>, fillcolor=\"#3de684\"] ;\\n3 -> 4 ;\\n5 [label=<gini = 0.0<br/>samples = 47<br/>value = [0, 47, 0]<br/>class = versicolor>, fillcolor=\"#39e581\"] ;\\n4 -> 5 ;\\n6 [label=<gini = 0.0<br/>samples = 1<br/>value = [0, 0, 1]<br/>class = virginica>, fillcolor=\"#8139e5\"] ;\\n4 -> 6 ;\\n7 [label=<petal width (cm) &le; 1.55<br/>gini = 0.444<br/>samples = 6<br/>value = [0, 2, 4]<br/>class = virginica>, fillcolor=\"#c09cf2\"] ;\\n3 -> 7 ;\\n8 [label=<gini = 0.0<br/>samples = 3<br/>value = [0, 0, 3]<br/>class = virginica>, fillcolor=\"#8139e5\"] ;\\n7 -> 8 ;\\n9 [label=<sepal length (cm) &le; 6.95<br/>gini = 0.444<br/>samples = 3<br/>value = [0, 2, 1]<br/>class = versicolor>, fillcolor=\"#9cf2c0\"] ;\\n7 -> 9 ;\\n10 [label=<gini = 0.0<br/>samples = 2<br/>value = [0, 2, 0]<br/>class = versicolor>, fillcolor=\"#39e581\"] ;\\n9 -> 10 ;\\n11 [label=<gini = 0.0<br/>samples = 1<br/>value = [0, 0, 1]<br/>class = virginica>, fillcolor=\"#8139e5\"] ;\\n9 -> 11 ;\\n12 [label=<petal length (cm) &le; 4.85<br/>gini = 0.043<br/>samples = 46<br/>value = [0, 1, 45]<br/>class = virginica>, fillcolor=\"#843de6\"] ;\\n2 -> 12 ;\\n13 [label=<sepal length (cm) &le; 5.95<br/>gini = 0.444<br/>samples = 3<br/>value = [0, 1, 2]<br/>class = virginica>, fillcolor=\"#c09cf2\"] ;\\n12 -> 13 ;\\n14 [label=<gini = 0.0<br/>samples = 1<br/>value = [0, 1, 0]<br/>class = versicolor>, fillcolor=\"#39e581\"] ;\\n13 -> 14 ;\\n15 [label=<gini = 0.0<br/>samples = 2<br/>value = [0, 0, 2]<br/>class = virginica>, fillcolor=\"#8139e5\"] ;\\n13 -> 15 ;\\n16 [label=<gini = 0.0<br/>samples = 43<br/>value = [0, 0, 43]<br/>class = virginica>, fillcolor=\"#8139e5\"] ;\\n12 -> 16 ;\\n}'"
      ]
     },
     "metadata": {},
     "execution_count": 14
    }
   ],
   "source": [
    "dot_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn.datasets import load_iris\n",
    ">>> from sklearn.tree import DecisionTreeClassifier\n",
    ">>> from sklearn.tree import export_text\n",
    ">>> iris = load_iris()\n",
    ">>> decision_tree = DecisionTreeClassifier(random_state=0, max_depth=2)\n",
    ">>> decision_tree = decision_tree.fit(iris.data, iris.target)\n",
    ">>> r = export_text(decision_tree, feature_names=iris['feature_names'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "|--- petal width (cm) <= 0.80\n|   |--- class: 0\n|--- petal width (cm) >  0.80\n|   |--- petal width (cm) <= 1.75\n|   |   |--- class: 1\n|   |--- petal width (cm) >  1.75\n|   |   |--- class: 2\n\n"
     ]
    }
   ],
   "source": [
    "print(r)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([0.5])"
      ]
     },
     "metadata": {},
     "execution_count": 22
    }
   ],
   "source": [
    ">>> from sklearn import tree\n",
    ">>> X = [[0, 0], [2, 2]]\n",
    ">>> y = [0.5, 2.5]\n",
    ">>> clf = tree.DecisionTreeRegressor()\n",
    ">>> clf = clf.fit(X, y)\n",
    ">>> clf.predict([[1, 1]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn.ensemble import RandomForestClassifier\n",
    ">>> X = [[0, 0], [1, 1]]\n",
    ">>> Y = [0, 1]\n",
    ">>> clf = RandomForestClassifier(n_estimators=10)\n",
    ">>> clf = clf.fit(X, Y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "metadata": {},
     "execution_count": 31
    }
   ],
   "source": [
    "clf.n_outputs_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn.model_selection import cross_val_score\n",
    ">>> from sklearn.datasets import make_blobs\n",
    ">>> from sklearn.ensemble import RandomForestClassifier\n",
    ">>> from sklearn.ensemble import ExtraTreesClassifier\n",
    ">>> from sklearn.tree import DecisionTreeClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> X, y = make_blobs(n_samples=10000, n_features=10, centers=100,\n",
    "...     random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.9823000000000001"
      ]
     },
     "metadata": {},
     "execution_count": 34
    }
   ],
   "source": [
    ">>> clf = DecisionTreeClassifier(max_depth=None, min_samples_split=2,\n",
    "...     random_state=0)\n",
    ">>> scores = cross_val_score(clf, X, y, cv=5)\n",
    ">>> scores.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.9997"
      ]
     },
     "metadata": {},
     "execution_count": 35
    }
   ],
   "source": [
    ">>> clf = RandomForestClassifier(n_estimators=10, max_depth=None,\n",
    "...     min_samples_split=2, random_state=0)\n",
    ">>> scores = cross_val_score(clf, X, y, cv=5)\n",
    ">>> scores.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> clf = ExtraTreesClassifier(n_estimators=10, max_depth=None,\n",
    "...     min_samples_split=2, random_state=0)\n",
    ">>> scores = cross_val_score(clf, X, y, cv=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "metadata": {},
     "execution_count": 38
    }
   ],
   "source": [
    "scores.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn.model_selection import cross_val_score\n",
    ">>> from sklearn.datasets import load_iris\n",
    ">>> from sklearn.ensemble import AdaBoostClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.9466666666666665"
      ]
     },
     "metadata": {},
     "execution_count": 41
    }
   ],
   "source": [
    ">>> X, y = load_iris(return_X_y=True)\n",
    ">>> clf = AdaBoostClassifier(n_estimators=100)\n",
    ">>> scores = cross_val_score(clf, X, y, cv=5)\n",
    ">>> scores.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.913"
      ]
     },
     "metadata": {},
     "execution_count": 42
    }
   ],
   "source": [
    ">>> from sklearn.datasets import make_hastie_10_2\n",
    ">>> from sklearn.ensemble import GradientBoostingClassifier\n",
    "\n",
    ">>> X, y = make_hastie_10_2(random_state=0)\n",
    ">>> X_train, X_test = X[:2000], X[2000:]\n",
    ">>> y_train, y_test = y[:2000], y[2000:]\n",
    "\n",
    ">>> clf = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0,\n",
    "...     max_depth=1, random_state=0).fit(X_train, y_train)\n",
    ">>> clf.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([0.09198524, 0.13040289, 0.11923928, 0.08806779, 0.08713337,\n",
       "       0.12007367, 0.07865914, 0.09990544, 0.09687612, 0.08765704])"
      ]
     },
     "metadata": {},
     "execution_count": 50
    }
   ],
   "source": [
    "clf.feature_importances_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.8965"
      ]
     },
     "metadata": {},
     "execution_count": 51
    }
   ],
   "source": [
    ">>> from sklearn.experimental import enable_hist_gradient_boosting\n",
    ">>> from sklearn.ensemble import HistGradientBoostingClassifier\n",
    ">>> from sklearn.datasets import make_hastie_10_2\n",
    "\n",
    ">>> X, y = make_hastie_10_2(random_state=0)\n",
    ">>> X_train, X_test = X[:2000], X[2000:]\n",
    ">>> y_train, y_test = y[:2000], y[2000:]\n",
    "\n",
    ">>> clf = HistGradientBoostingClassifier(max_iter=100).fit(X_train, y_train)\n",
    ">>> clf.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "metadata": {},
     "execution_count": 55
    }
   ],
   "source": [
    "clf.n_features_in_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn import datasets\n",
    ">>> from sklearn.model_selection import cross_val_score\n",
    ">>> from sklearn.linear_model import LogisticRegression\n",
    ">>> from sklearn.naive_bayes import GaussianNB\n",
    ">>> from sklearn.ensemble import RandomForestClassifier\n",
    ">>> from sklearn.ensemble import VotingClassifier\n",
    "\n",
    ">>> iris = datasets.load_iris()\n",
    ">>> X, y = iris.data[:, 1:3], iris.target\n",
    "\n",
    ">>> clf1 = LogisticRegression(random_state=1)\n",
    ">>> clf2 = RandomForestClassifier(n_estimators=50, random_state=1)\n",
    ">>> clf3 = GaussianNB()\n",
    "\n",
    ">>> eclf = VotingClassifier(\n",
    "...     estimators=[('lr', clf1), ('rf', clf2), ('gnb', clf3)],\n",
    "...     voting='soft')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn import datasets\n",
    ">>> from sklearn.tree import DecisionTreeClassifier\n",
    ">>> from sklearn.neighbors import KNeighborsClassifier\n",
    ">>> from sklearn.svm import SVC\n",
    ">>> from itertools import product\n",
    ">>> from sklearn.ensemble import VotingClassifier\n",
    "\n",
    ">>> # Loading some example data\n",
    ">>> iris = datasets.load_iris()\n",
    ">>> X = iris.data[:, [0, 2]]\n",
    ">>> y = iris.target\n",
    "\n",
    ">>> # Training classifiers\n",
    ">>> clf1 = DecisionTreeClassifier(max_depth=4)\n",
    ">>> clf2 = KNeighborsClassifier(n_neighbors=7)\n",
    ">>> clf3 = SVC(kernel='rbf', probability=True)\n",
    ">>> eclf = VotingClassifier(estimators=[('dt', clf1), ('knn', clf2), ('svc', clf3)],\n",
    "...                         voting='soft', weights=[2, 1, 2])\n",
    "\n",
    ">>> clf1 = clf1.fit(X, y)\n",
    ">>> clf2 = clf2.fit(X, y)\n",
    ">>> clf3 = clf3.fit(X, y)\n",
    ">>> eclf = eclf.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Accuracy: 0.95 (+/- 0.03) [DecisionTreeClassifier]\nAccuracy: 0.94 (+/- 0.04) [KNeighborsClassifier]\nAccuracy: 0.95 (+/- 0.03) [SVC]\nAccuracy: 0.93 (+/- 0.07) [Ensemble]\n"
     ]
    }
   ],
   "source": [
    ">>> for clf, label in zip([clf1, clf2, clf3, eclf], [type(clf1).__name__, type(clf2).__name__, type(clf3).__name__, 'Ensemble']):\n",
    "...     scores = cross_val_score(clf, X, y, scoring='accuracy', cv=5)\n",
    "...     print(\"Accuracy: %0.2f (+/- %0.2f) [%s]\" % (scores.mean(), scores.std(), label))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n",
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n"
     ]
    }
   ],
   "source": [
    ">>> from sklearn.model_selection import GridSearchCV\n",
    ">>> clf1 = LogisticRegression(random_state=1)\n",
    ">>> clf2 = RandomForestClassifier(random_state=1)\n",
    ">>> clf3 = GaussianNB()\n",
    ">>> eclf = VotingClassifier(\n",
    "...     estimators=[('lr', clf1), ('rf', clf2), ('gnb', clf3)],\n",
    "...     voting='soft'\n",
    "... )\n",
    "\n",
    ">>> params = {'lr__C': [1.0, 100.0], 'rf__n_estimators': [20, 200]}\n",
    "\n",
    ">>> grid = GridSearchCV(estimator=eclf, param_grid=params, cv=5)\n",
    ">>> grid = grid.fit(iris.data, iris.target)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> eclf = VotingClassifier(\n",
    "...     estimators=[('lr', clf1), ('rf', clf2), ('gnb', clf3)],\n",
    "...     voting='soft'\n",
    "... )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> eclf = VotingClassifier(\n",
    "...     estimators=[('lr', clf1), ('rf', clf2), ('gnb', clf3)],\n",
    "...     voting='soft', weights=[2,5,1]\n",
    "... )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "(150, 4)"
      ]
     },
     "metadata": {},
     "execution_count": 91
    }
   ],
   "source": [
    ">>> from sklearn.datasets import load_iris\n",
    ">>> from sklearn.feature_selection import SelectKBest\n",
    ">>> from sklearn.feature_selection import chi2\n",
    ">>> X, y = load_iris(return_X_y=True)\n",
    ">>> X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "(150, 2)"
      ]
     },
     "metadata": {},
     "execution_count": 92
    }
   ],
   "source": [
    ">>> X_new = SelectKBest(chi2, k=2).fit_transform(X, y)\n",
    ">>> X_new.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "(150, 4)"
      ]
     },
     "metadata": {},
     "execution_count": 93
    }
   ],
   "source": [
    ">>> from sklearn.svm import LinearSVC\n",
    ">>> from sklearn.datasets import load_iris\n",
    ">>> from sklearn.feature_selection import SelectFromModel\n",
    ">>> X, y = load_iris(return_X_y=True)\n",
    ">>> X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/svm/_base.py:986: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n  \"the number of iterations.\", ConvergenceWarning)\n"
     ]
    },
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "(150, 3)"
      ]
     },
     "metadata": {},
     "execution_count": 95
    }
   ],
   "source": [
    ">>> lsvc = LinearSVC(C=0.01, penalty=\"l1\", dual=False).fit(X, y)\n",
    ">>> model = SelectFromModel(lsvc, prefit=True)\n",
    ">>> X_new = model.transform(X)\n",
    ">>> X_new.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn.ensemble import ExtraTreesClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([0.10787453, 0.06759799, 0.3838371 , 0.44069038])"
      ]
     },
     "metadata": {},
     "execution_count": 97
    }
   ],
   "source": [
    ">>> clf = ExtraTreesClassifier(n_estimators=50)\n",
    ">>> clf = clf.fit(X, y)\n",
    ">>> clf.feature_importances_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "(150, 2)"
      ]
     },
     "metadata": {},
     "execution_count": 98
    }
   ],
   "source": [
    ">>> model = SelectFromModel(clf, prefit=True)\n",
    ">>> X_new = model.transform(X)\n",
    ">>> X_new.shape               "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[1.4, 0.2],\n",
       "       [1.4, 0.2],\n",
       "       [1.3, 0.2],\n",
       "       [1.5, 0.2],\n",
       "       [1.4, 0.2],\n",
       "       [1.7, 0.4],\n",
       "       [1.4, 0.3],\n",
       "       [1.5, 0.2],\n",
       "       [1.4, 0.2],\n",
       "       [1.5, 0.1],\n",
       "       [1.5, 0.2],\n",
       "       [1.6, 0.2],\n",
       "       [1.4, 0.1],\n",
       "       [1.1, 0.1],\n",
       "       [1.2, 0.2],\n",
       "       [1.5, 0.4],\n",
       "       [1.3, 0.4],\n",
       "       [1.4, 0.3],\n",
       "       [1.7, 0.3],\n",
       "       [1.5, 0.3],\n",
       "       [1.7, 0.2],\n",
       "       [1.5, 0.4],\n",
       "       [1. , 0.2],\n",
       "       [1.7, 0.5],\n",
       "       [1.9, 0.2],\n",
       "       [1.6, 0.2],\n",
       "       [1.6, 0.4],\n",
       "       [1.5, 0.2],\n",
       "       [1.4, 0.2],\n",
       "       [1.6, 0.2],\n",
       "       [1.6, 0.2],\n",
       "       [1.5, 0.4],\n",
       "       [1.5, 0.1],\n",
       "       [1.4, 0.2],\n",
       "       [1.5, 0.2],\n",
       "       [1.2, 0.2],\n",
       "       [1.3, 0.2],\n",
       "       [1.4, 0.1],\n",
       "       [1.3, 0.2],\n",
       "       [1.5, 0.2],\n",
       "       [1.3, 0.3],\n",
       "       [1.3, 0.3],\n",
       "       [1.3, 0.2],\n",
       "       [1.6, 0.6],\n",
       "       [1.9, 0.4],\n",
       "       [1.4, 0.3],\n",
       "       [1.6, 0.2],\n",
       "       [1.4, 0.2],\n",
       "       [1.5, 0.2],\n",
       "       [1.4, 0.2],\n",
       "       [4.7, 1.4],\n",
       "       [4.5, 1.5],\n",
       "       [4.9, 1.5],\n",
       "       [4. , 1.3],\n",
       "       [4.6, 1.5],\n",
       "       [4.5, 1.3],\n",
       "       [4.7, 1.6],\n",
       "       [3.3, 1. ],\n",
       "       [4.6, 1.3],\n",
       "       [3.9, 1.4],\n",
       "       [3.5, 1. ],\n",
       "       [4.2, 1.5],\n",
       "       [4. , 1. ],\n",
       "       [4.7, 1.4],\n",
       "       [3.6, 1.3],\n",
       "       [4.4, 1.4],\n",
       "       [4.5, 1.5],\n",
       "       [4.1, 1. ],\n",
       "       [4.5, 1.5],\n",
       "       [3.9, 1.1],\n",
       "       [4.8, 1.8],\n",
       "       [4. , 1.3],\n",
       "       [4.9, 1.5],\n",
       "       [4.7, 1.2],\n",
       "       [4.3, 1.3],\n",
       "       [4.4, 1.4],\n",
       "       [4.8, 1.4],\n",
       "       [5. , 1.7],\n",
       "       [4.5, 1.5],\n",
       "       [3.5, 1. ],\n",
       "       [3.8, 1.1],\n",
       "       [3.7, 1. ],\n",
       "       [3.9, 1.2],\n",
       "       [5.1, 1.6],\n",
       "       [4.5, 1.5],\n",
       "       [4.5, 1.6],\n",
       "       [4.7, 1.5],\n",
       "       [4.4, 1.3],\n",
       "       [4.1, 1.3],\n",
       "       [4. , 1.3],\n",
       "       [4.4, 1.2],\n",
       "       [4.6, 1.4],\n",
       "       [4. , 1.2],\n",
       "       [3.3, 1. ],\n",
       "       [4.2, 1.3],\n",
       "       [4.2, 1.2],\n",
       "       [4.2, 1.3],\n",
       "       [4.3, 1.3],\n",
       "       [3. , 1.1],\n",
       "       [4.1, 1.3],\n",
       "       [6. , 2.5],\n",
       "       [5.1, 1.9],\n",
       "       [5.9, 2.1],\n",
       "       [5.6, 1.8],\n",
       "       [5.8, 2.2],\n",
       "       [6.6, 2.1],\n",
       "       [4.5, 1.7],\n",
       "       [6.3, 1.8],\n",
       "       [5.8, 1.8],\n",
       "       [6.1, 2.5],\n",
       "       [5.1, 2. ],\n",
       "       [5.3, 1.9],\n",
       "       [5.5, 2.1],\n",
       "       [5. , 2. ],\n",
       "       [5.1, 2.4],\n",
       "       [5.3, 2.3],\n",
       "       [5.5, 1.8],\n",
       "       [6.7, 2.2],\n",
       "       [6.9, 2.3],\n",
       "       [5. , 1.5],\n",
       "       [5.7, 2.3],\n",
       "       [4.9, 2. ],\n",
       "       [6.7, 2. ],\n",
       "       [4.9, 1.8],\n",
       "       [5.7, 2.1],\n",
       "       [6. , 1.8],\n",
       "       [4.8, 1.8],\n",
       "       [4.9, 1.8],\n",
       "       [5.6, 2.1],\n",
       "       [5.8, 1.6],\n",
       "       [6.1, 1.9],\n",
       "       [6.4, 2. ],\n",
       "       [5.6, 2.2],\n",
       "       [5.1, 1.5],\n",
       "       [5.6, 1.4],\n",
       "       [6.1, 2.3],\n",
       "       [5.6, 2.4],\n",
       "       [5.5, 1.8],\n",
       "       [4.8, 1.8],\n",
       "       [5.4, 2.1],\n",
       "       [5.6, 2.4],\n",
       "       [5.1, 2.3],\n",
       "       [5.1, 1.9],\n",
       "       [5.9, 2.3],\n",
       "       [5.7, 2.5],\n",
       "       [5.2, 2.3],\n",
       "       [5. , 1.9],\n",
       "       [5.2, 2. ],\n",
       "       [5.4, 2.3],\n",
       "       [5.1, 1.8]])"
      ]
     },
     "metadata": {},
     "execution_count": 99
    }
   ],
   "source": [
    "X_new"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "MLPClassifier(alpha=1e-05, hidden_layer_sizes=(5, 2), random_state=1,\n",
       "              solver='lbfgs')"
      ]
     },
     "metadata": {},
     "execution_count": 100
    }
   ],
   "source": [
    ">>> from sklearn.neural_network import MLPClassifier\n",
    ">>> X = [[0., 0.], [1., 1.]]\n",
    ">>> y = [0, 1]\n",
    ">>> clf = MLPClassifier(solver='lbfgs', alpha=1e-5,\n",
    "...                     hidden_layer_sizes=(5, 2), random_state=1)\n",
    "...\n",
    ">>> clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([1, 0])"
      ]
     },
     "metadata": {},
     "execution_count": 101
    }
   ],
   "source": [
    "clf.predict([[2., 2.], [-1., -2.]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "[(2, 5), (5, 2), (2, 1)]"
      ]
     },
     "metadata": {},
     "execution_count": 102
    }
   ],
   "source": [
    "[coef.shape for coef in clf.coefs_]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[1.96718015e-04, 9.99803282e-01],\n",
       "       [1.96718015e-04, 9.99803282e-01]])"
      ]
     },
     "metadata": {},
     "execution_count": 103
    }
   ],
   "source": [
    "clf.predict_proba([[2., 2.], [1., 2.]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "MLPClassifier(alpha=1e-05, hidden_layer_sizes=(15,), random_state=1,\n",
       "              solver='lbfgs')"
      ]
     },
     "metadata": {},
     "execution_count": 104
    }
   ],
   "source": [
    ">>> X = [[0., 0.], [1., 1.]]\n",
    ">>> y = [[0, 1], [1, 1]]\n",
    ">>> clf = MLPClassifier(solver='lbfgs', alpha=1e-5,\n",
    "...                     hidden_layer_sizes=(15,), random_state=1)\n",
    "...\n",
    ">>> clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[0.99999999, 1.        ]])"
      ]
     },
     "metadata": {},
     "execution_count": 106
    }
   ],
   "source": [
    "clf.predict_proba([[1., 2.]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([0.96666667, 0.96666667, 0.96666667, 0.93333333, 1.        ])"
      ]
     },
     "metadata": {},
     "execution_count": 108
    }
   ],
   "source": [
    ">>> from sklearn import svm, datasets\n",
    ">>> from sklearn.model_selection import cross_val_score\n",
    ">>> X, y = datasets.load_iris(return_X_y=True)\n",
    ">>> clf = svm.SVC(random_state=0)\n",
    ">>> cross_val_score(clf, X, y, cv=5, scoring='recall_macro')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn.metrics import fbeta_score, make_scorer\n",
    ">>> ftwo_scorer = make_scorer(fbeta_score, beta=2)\n",
    ">>> from sklearn.model_selection import GridSearchCV\n",
    ">>> from sklearn.svm import LinearSVC\n",
    ">>> grid = GridSearchCV(LinearSVC(), param_grid={'C': [1, 10]},\n",
    "...                     scoring=ftwo_scorer, cv=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.6931471805599453"
      ]
     },
     "metadata": {},
     "execution_count": 110
    }
   ],
   "source": [
    ">>> import numpy as np\n",
    ">>> def my_custom_loss_func(y_true, y_pred):\n",
    "...     diff = np.abs(y_true - y_pred).max()\n",
    "...     return np.log1p(diff)\n",
    "...\n",
    ">>> # score will negate the return value of my_custom_loss_func,\n",
    ">>> # which will be np.log(2), 0.693, given the values for X\n",
    ">>> # and y defined below.\n",
    ">>> score = make_scorer(my_custom_loss_func, greater_is_better=False)\n",
    ">>> X = [[1], [1]]\n",
    ">>> y = [0, 1]\n",
    ">>> from sklearn.dummy import DummyClassifier\n",
    ">>> clf = DummyClassifier(strategy='most_frequent', random_state=0)\n",
    ">>> clf = clf.fit(X, y)\n",
    ">>> my_custom_loss_func(y, clf.predict(X))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "-0.6931471805599453"
      ]
     },
     "metadata": {},
     "execution_count": 111
    }
   ],
   "source": [
    "score(clf, X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn.metrics import accuracy_score\n",
    ">>> from sklearn.metrics import make_scorer\n",
    ">>> scoring = {'accuracy': make_scorer(accuracy_score),\n",
    "...            'prec': 'precision'}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn.model_selection import cross_validate\n",
    ">>> from sklearn.metrics import confusion_matrix\n",
    ">>> # A sample toy binary classification dataset\n",
    ">>> X, y = datasets.make_classification(n_classes=2, random_state=0)\n",
    ">>> svm = LinearSVC(random_state=0)\n",
    ">>> def confusion_matrix_scorer(clf, X, y):\n",
    "...      y_pred = clf.predict(X)\n",
    "...      cm = confusion_matrix(y, y_pred)\n",
    "...      return {'tn': cm[0, 0], 'fp': cm[0, 1],\n",
    "...              'fn': cm[1, 0], 'tp': cm[1, 1]}\n",
    ">>> cv_results = cross_validate(svm, X, y, cv=5,\n",
    "...                             scoring=confusion_matrix_scorer)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "{'fit_time': array([0.002666  , 0.00272417, 0.00178909, 0.00184393, 0.00227523]),\n",
       " 'score_time': array([0.00237107, 0.00075293, 0.00105095, 0.00093794, 0.00201392]),\n",
       " 'test_tn': array([ 5,  9,  8,  6, 10]),\n",
       " 'test_fp': array([5, 1, 2, 4, 0]),\n",
       " 'test_fn': array([0, 1, 2, 3, 2]),\n",
       " 'test_tp': array([10,  9,  8,  7,  8])}"
      ]
     },
     "metadata": {},
     "execution_count": 114
    }
   ],
   "source": [
    "cv_results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "              precision    recall  f1-score   support\n\n     class 0       0.67      1.00      0.80         2\n     class 1       0.00      0.00      0.00         1\n     class 2       1.00      0.50      0.67         2\n\n    accuracy                           0.60         5\n   macro avg       0.56      0.50      0.49         5\nweighted avg       0.67      0.60      0.59         5\n\n"
     ]
    }
   ],
   "source": [
    ">>> from sklearn.metrics import classification_report\n",
    ">>> y_true = [0, 1, 2, 2, 0]\n",
    ">>> y_pred = [0, 0, 2, 1, 0]\n",
    ">>> target_names = ['class 0', 'class 1', 'class 2']\n",
    ">>> print(classification_report(y_true, y_pred, target_names=target_names))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn import metrics\n",
    ">>> y_pred = [0, 1, 0, 0]\n",
    ">>> y_true = [0, 1, 0, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "metadata": {},
     "execution_count": 121
    }
   ],
   "source": [
    "metrics.precision_score(y_true, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.5"
      ]
     },
     "metadata": {},
     "execution_count": 122
    }
   ],
   "source": [
    "metrics.recall_score(y_true, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.6666666666666666"
      ]
     },
     "metadata": {},
     "execution_count": 123
    }
   ],
   "source": [
    "metrics.f1_score(y_true, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.8333333333333334"
      ]
     },
     "metadata": {},
     "execution_count": 124
    }
   ],
   "source": [
    "metrics.fbeta_score(y_true, y_pred, beta=0.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.6666666666666666"
      ]
     },
     "metadata": {},
     "execution_count": 126
    }
   ],
   "source": [
    "metrics.fbeta_score(y_true, y_pred, beta=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.5555555555555556"
      ]
     },
     "metadata": {},
     "execution_count": 127
    }
   ],
   "source": [
    "metrics.fbeta_score(y_true, y_pred, beta=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "(array([0.66666667, 1.        ]),\n",
       " array([1. , 0.5]),\n",
       " array([0.8       , 0.66666667]),\n",
       " array([2, 2]))"
      ]
     },
     "metadata": {},
     "execution_count": 129
    }
   ],
   "source": [
    "metrics.precision_recall_fscore_support(y_true, y_pred, beta=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> import numpy as np\n",
    ">>> from sklearn.metrics import precision_recall_curve\n",
    ">>> from sklearn.metrics import average_precision_score\n",
    ">>> y_true = np.array([0, 0, 1, 1])\n",
    ">>> y_scores = np.array([0.1, 0.4, 0.35, 0.8])\n",
    ">>> precision, recall, threshold = precision_recall_curve(y_true, y_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "(array([0.66666667, 0.5       , 1.        , 1.        ]),\n",
       " array([1. , 0.5, 0.5, 0. ]),\n",
       " array([0.35, 0.4 , 0.8 ]))"
      ]
     },
     "metadata": {},
     "execution_count": 131
    }
   ],
   "source": [
    "precision, recall, threshold"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn import metrics\n",
    ">>> y_true = [0, 1, 2, 0, 1, 2]\n",
    ">>> y_pred = [0, 2, 1, 0, 0, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.2222222222222222"
      ]
     },
     "metadata": {},
     "execution_count": 133
    }
   ],
   "source": [
    "metrics.precision_score(y_true, y_pred, average='macro')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.3333333333333333"
      ]
     },
     "metadata": {},
     "execution_count": 134
    }
   ],
   "source": [
    "metrics.recall_score(y_true, y_pred, average='micro')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.26666666666666666"
      ]
     },
     "metadata": {},
     "execution_count": 135
    }
   ],
   "source": [
    "metrics.f1_score(y_true, y_pred, average='weighted')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.23809523809523805"
      ]
     },
     "metadata": {},
     "execution_count": 136
    }
   ],
   "source": [
    "metrics.fbeta_score(y_true, y_pred, average='macro', beta=0.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "(array([0.66666667, 0.        , 0.        ]),\n",
       " array([1., 0., 0.]),\n",
       " array([0.71428571, 0.        , 0.        ]),\n",
       " array([2, 2, 2]))"
      ]
     },
     "metadata": {},
     "execution_count": 137
    }
   ],
   "source": [
    "metrics.precision_recall_fscore_support(y_true, y_pred, beta=0.5, average=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.0"
      ]
     },
     "metadata": {},
     "execution_count": 138
    }
   ],
   "source": [
    "metrics.recall_score(y_true, y_pred, labels=[1, 2], average='micro')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.9571734475374732"
      ]
     },
     "metadata": {},
     "execution_count": 139
    }
   ],
   "source": [
    ">>> from sklearn.metrics import explained_variance_score\n",
    ">>> y_true = [3, -0.5, 2, 7]\n",
    ">>> y_pred = [2.5, 0.0, 2, 8]\n",
    ">>> explained_variance_score(y_true, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([0.96774194, 1.        ])"
      ]
     },
     "metadata": {},
     "execution_count": 140
    }
   ],
   "source": [
    ">>> y_true = [[0.5, 1], [-1, 1], [7, -6]]\n",
    ">>> y_pred = [[0, 2], [-1, 2], [8, -5]]\n",
    ">>> explained_variance_score(y_true, y_pred, multioutput='raw_values')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.9903225806451612"
      ]
     },
     "metadata": {},
     "execution_count": 141
    }
   ],
   "source": [
    "explained_variance_score(y_true, y_pred, multioutput=[0.3, 0.7])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.5"
      ]
     },
     "metadata": {},
     "execution_count": 142
    }
   ],
   "source": [
    ">>> from sklearn.metrics import mean_absolute_error\n",
    ">>> y_true = [3, -0.5, 2, 7]\n",
    ">>> y_pred = [2.5, 0.0, 2, 8]\n",
    ">>> mean_absolute_error(y_true, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.75"
      ]
     },
     "metadata": {},
     "execution_count": 143
    }
   ],
   "source": [
    ">>> y_true = [[0.5, 1], [-1, 1], [7, -6]]\n",
    ">>> y_pred = [[0, 2], [-1, 2], [8, -5]]\n",
    ">>> mean_absolute_error(y_true, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([0.5, 1. ])"
      ]
     },
     "metadata": {},
     "execution_count": 144
    }
   ],
   "source": [
    ">>> mean_absolute_error(y_true, y_pred, multioutput='raw_values')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.85"
      ]
     },
     "metadata": {},
     "execution_count": 145
    }
   ],
   "source": [
    "mean_absolute_error(y_true, y_pred, multioutput=[0.3, 0.7])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import max_error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> y_true = [3, -0.5, 2, 7]\n",
    ">>> y_pred = [2.5, 0.0, 2, 8]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "metadata": {},
     "execution_count": 148
    }
   ],
   "source": [
    "max_error(y_true, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.375"
      ]
     },
     "metadata": {},
     "execution_count": 149
    }
   ],
   "source": [
    ">>> from sklearn.metrics import mean_squared_error\n",
    ">>> y_true = [3, -0.5, 2, 7]\n",
    ">>> y_pred = [2.5, 0.0, 2, 8]\n",
    ">>> mean_squared_error(y_true, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.7083333333333334"
      ]
     },
     "metadata": {},
     "execution_count": 150
    }
   ],
   "source": [
    ">>> y_true = [[0.5, 1], [-1, 1], [7, -6]]\n",
    ">>> y_pred = [[0, 2], [-1, 2], [8, -5]]\n",
    ">>> mean_squared_error(y_true, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> from sklearn.datasets import load_iris\n",
    ">>> from sklearn.model_selection import train_test_split\n",
    ">>> X, y = load_iris(return_X_y=True)\n",
    ">>> y[y != 1] = -1\n",
    ">>> X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.631578947368421"
      ]
     },
     "metadata": {},
     "execution_count": 152
    }
   ],
   "source": [
    ">>> from sklearn.dummy import DummyClassifier\n",
    ">>> from sklearn.svm import SVC\n",
    ">>> clf = SVC(kernel='linear', C=1).fit(X_train, y_train)\n",
    ">>> clf.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "DummyClassifier(random_state=0, strategy='most_frequent')"
      ]
     },
     "metadata": {},
     "execution_count": 153
    }
   ],
   "source": [
    ">>> clf = DummyClassifier(strategy='most_frequent', random_state=0)\n",
    ">>> clf.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.5789473684210527"
      ]
     },
     "metadata": {},
     "execution_count": 154
    }
   ],
   "source": [
    "clf.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.9473684210526315"
      ]
     },
     "metadata": {},
     "execution_count": 155
    }
   ],
   "source": [
    ">>> clf = SVC(kernel='rbf', C=1).fit(X_train, y_train)\n",
    ">>> clf.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> import numpy as np\n",
    ">>> from sklearn.model_selection import validation_curve\n",
    ">>> from sklearn.datasets import load_iris\n",
    ">>> from sklearn.linear_model import Ridge"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    ">>> np.random.seed(0)\n",
    ">>> X, y = load_iris(return_X_y=True)\n",
    ">>> indices = np.arange(y.shape[0])\n",
    ">>> np.random.shuffle(indices)\n",
    ">>> X, y = X[indices], y[indices]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "/Users/mengjunliu/anaconda3/envs/ml_py37/lib/python3.7/site-packages/sklearn/utils/validation.py:72: FutureWarning: Pass param_name=alpha, param_range=[1.e-07 1.e-02 1.e+03] as keyword args. From version 1.0 (renaming of 0.25) passing these as positional arguments will result in an error\n  \"will result in an error\", FutureWarning)\n"
     ]
    }
   ],
   "source": [
    ">>> train_scores, valid_scores = validation_curve(Ridge(), X, y, \"alpha\",\n",
    "...                                               np.logspace(-7, 3, 3),\n",
    "...                                               cv=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[0.93402178, 0.94366418, 0.92648383, 0.91933313, 0.92922507],\n",
       "       [0.9340217 , 0.94366412, 0.92648377, 0.91933304, 0.929225  ],\n",
       "       [0.51143526, 0.52415737, 0.49868907, 0.47086988, 0.49623503]])"
      ]
     },
     "metadata": {},
     "execution_count": 4
    }
   ],
   "source": [
    "train_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[0.9055033 , 0.84185935, 0.94569793, 0.96231017, 0.93366144],\n",
       "       [0.90550088, 0.84184574, 0.94568969, 0.96233172, 0.93366806],\n",
       "       [0.46706558, 0.25698974, 0.50496293, 0.49826404, 0.52500014]])"
      ]
     },
     "metadata": {},
     "execution_count": 5
    }
   ],
   "source": [
    "valid_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([1.e-07, 1.e-02, 1.e+03])"
      ]
     },
     "metadata": {},
     "execution_count": 6
    }
   ],
   "source": [
    "np.logspace(-7, 3, 3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([ 50,  80, 110])"
      ]
     },
     "metadata": {},
     "execution_count": 7
    }
   ],
   "source": [
    ">>> from sklearn.model_selection import learning_curve\n",
    ">>> from sklearn.svm import SVC\n",
    "\n",
    ">>> train_sizes, train_scores, valid_scores = learning_curve(\n",
    "...     SVC(kernel='linear'), X, y, train_sizes=[50, 80, 110], cv=5)\n",
    ">>> train_sizes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[0.98      , 0.98      , 0.98      , 0.98      , 0.98      ],\n",
       "       [0.9875    , 1.        , 0.9875    , 0.9875    , 0.9875    ],\n",
       "       [0.98181818, 1.        , 0.98181818, 0.98181818, 0.99090909]])"
      ]
     },
     "metadata": {},
     "execution_count": 8
    }
   ],
   "source": [
    "train_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[1.        , 0.93333333, 1.        , 1.        , 0.96666667],\n",
       "       [1.        , 0.96666667, 1.        , 1.        , 0.96666667],\n",
       "       [1.        , 0.96666667, 1.        , 1.        , 0.96666667]])"
      ]
     },
     "metadata": {},
     "execution_count": 9
    }
   ],
   "source": [
    "valid_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ]
}